跳转到主要内容

Gitlab CI内部工作工具

项目描述

Build status License PyPi package

从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 (21.2 kB 查看哈希值)

上传时间

构建分布

gitlab_ci_tools-0.1.0-py3-none-any.whl (7.7 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面