Gitlab CI内部工作工具
项目描述
从Gitlab CI获取有用信息(例如最后成功的构建的git哈希)的脚本
概述
通常在使用Gitlab CI时,您需要的信息可能无法从CI运行器提供的环境变量中获得。此软件包包含从Gitlab API获取信息的脚本集合
许可证
gitlab-ci-tools 在简化(2条款)BSD许可证下发布。有关详细信息,请参阅LICENSE文件。
安装
这些脚本是用Python 3编写的,因此您需要先安装它
pip3 install gitlab-ci-tools
您可以在本地计算机上安装此软件包以测试脚本(有关详细信息,请参阅使用部分),但是通常您会希望将此软件包安装到Gitlab CI环境中。
实现此目的的最简单方法是将以下内容添加到您的.gitlab-ci.yml文件顶部
before_script: - pip3 install gitlab-ci-tools
使用方法
安装gitlab-ci-tools会安装一些您可以从命令行运行的脚本。有关安装工具的列表,请参阅下一部分。
为了使脚本能够访问Gitlab API,您必须提供一个CI secret变量GITLAB_API_TOKEN,它包含具有api作用域的个人访问令牌(请参阅这些说明以了解如何生成一个)。
安全注意事项
遗憾的是,Gitlab的API权限并不非常细化,所以任何可以访问此令牌的人实际上就是您(至少在Gitlab看来是这样)。如果您不信任的人可以访问您的CI(例如,他们可以向您的仓库提交触发CI的更改),这可不是什么好主意。Gitlab上存在几个待解决的问题(例如,#29566和#41084),这些问题的目的是尝试解决CI运行器内认证API访问的问题。
工具列表
last-good-build
打印当前分支最后一次成功构建的Git哈希。一个有用的例子是生成两个Latex文档之间的差异PDF。
before_script: pip install gitlab-ci-tools LAST_GOOD_BUILD=$(last-good-build || echo '') report diff: script: - git show $LAST_GOOD_BUILD:important_doc.tex > old_doc.tex - latexdiff old_doc.tex important_doc.tex > diff_doc.tex - latexmk -pdf diff_doc.tex artifacts: paths: - diff_doc.pdf
贡献
我很乐意在这里添加更多工具,而不仅仅是那些对我有用的工具。如果脚本能够遵循与现有脚本类似的架构(即提供main()函数,并公开可以通过命令行选项或环境变量驱动的命令行),那将非常好。但如果需要,我也愿意引导任何人完成这个过程。
一旦有多个脚本,我们就可以开始考虑如何最好地分离出公共功能,以便我们可以减少样板代码。
项目详情
gitlab-ci-tools-0.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 52335836cec49ce13a443def989e0ad52f25fc664c5e2ef8750d039629861755 |
|
MD5 | 23c681234049b00792937d6d41e8b37e |
|
BLAKE2b-256 | d288c6fca2a306565802e5c3f7a26cdf6f86a5a5385e62facb0000133a987c30 |
gitlab_ci_tools-0.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d78f7993a84d5b3be801cbeccf8ffac8a68cf19ad624f7390a9360ea8f6babaa |
|
MD5 | 68e23cf30e5156e78951e10fe1555f9c |
|
BLAKE2b-256 | c52c1dc9ebea43d79f41bf832ce4c65ff49a7074341c06bbb3c1889674d9b9e7 |