在gitlab ci中工作的工具

gitlab-ci-tools的Python项目详细描述


Build statusLicensePyPi package

从gitlab ci中获取有用信息(例如,上次成功构建的git散列)的脚本

概述

通常在使用gitlab ci时,您需要的信息不是 可从ci提供的environment variables获得 跑步者。此包包含用于获取 来自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,您必须 提供包含 具有api作用域的个人访问令牌(签出these instructions到 了解如何生成一个)。

安全注意事项

不幸的是,gitlab的api权限不是很细粒度的,所以 任何可以访问此令牌的人实际上都是 就Gitlab而言)。如果你不信任的人 您的ci(例如,他们可以将ci触发提交到您的存储库) 这是个坏主意。Gitlab上有几个悬而未决的问题 (例如#29566#41084)试图解决 通过身份验证的API访问。

工具列表

last-good-build

打印当前分支上次成功生成的git哈希。 一个有用的例子是生成两个乳胶之间差异的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

贡献

我很乐意在这里添加更多的工具,而不仅仅是那些我觉得有用的工具。 如果脚本遵循与 现有的(即提供一个^ {tt7} $函数),并公开一条命令行 可以通过命令行选项或环境变量驱动, 但如果需要的话,我很乐意指导任何人通过这个过程。

一旦有了不止一个脚本,我们就可以开始思考 分离出共同的功能,这样我们就可以减少样板。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用JNA创建同一库的多个实例?   java在将Graphql查询作为JSON字符串传递时收到意外的令牌错误   OAuth2 oltu的java问题   java桌面应用程序使用的好的嵌入式数据库是什么?   java Firebase数据库高级查询选项   java正在使磁盘上的EhCache元素过期   java 安卓还原处于backstack中的片段的实例状态   XMemcached中的java异步集   java TimescaleDB是否使用与Postgresql完全相同的JDBC驱动程序?   java从网站c读取信息#   检查java Android中的字符串是否只包含数字和空格   c#如何向web服务发送特殊字符?   grails无法调用需要java的方法。lang.类参数?   java我在组合框中调用的方法不会运行所有代码,它只运行部分代码   java发送带有标头的HTTP GET请求