Skip to main content

GitLab CI 作业运行时间的历史

项目描述

https://travis-ci.org/mgedmin/gitlab-jobs.svg?branch=master https://coveralls.io/repos/mgedmin/gitlab-jobs/badge.svg?branch=master

GitLab CI 很好,但我想念 Jenkins 的构建时间趋势图。所以这是一个至少可以计算一些摘要信息的脚本:

$ gitlab-jobs --csv jobs.csv
Last 20 successful pipelines of myproject master:
  ...

Summary:
  build_client      min  4.2m, max  7.6m, avg  5.8m, median  5.7m, stdev  1.0m
  build_docker      min  2.7m, max 11.6m, avg  3.5m, median  3.0m, stdev  1.9m
  build_server      min  6.6m, max 12.2m, avg  8.9m, median  8.1m, stdev  1.9m
  test_robot        min 25.4m, max 38.3m, avg 30.0m, median 29.1m, stdev  3.6m
  unittests_client  min  1.1m, max  7.9m, avg  4.1m, median  4.6m, stdev  2.5m
  unittests_server  min  3.5m, max  6.3m, avg  4.9m, median  5.1m, stdev  0.9m
  overall           min 37.4m, max 55.8m, avg 45.6m, median 45.6m, stdev  3.8m

Writing jobs.csv...

然后,您可以将 CSV 文件导入电子表格并生成漂亮的图表,例如

https://github.com/mgedmin/gitlab-jobs/raw/master/chart.png

(注意:此图表的 X 轴翻转和 Y 轴缩放,因为这对我来说更有意义。CSV 数据包含以秒为单位的持续时间,最新的在前。)

安装

pip3 install --user gitlab-jobs应该负责一切,只要确保 ~/.local/bin 在你的 $PATH 上。

或者您可能想要使用像pipx(我最喜欢的)这样的脚本安装程序。

配置

像这样创建一个~/.python-gitlab.cfg

[global]
default = mygitlab

[mygitlab]
url = https://gitlab.example.com/
private_token = ...

您可以在 GitLab 配置文件设置中创建私有访问令牌。它需要“read_api”访问范围。

用法

您需要一个 GitLab 项目 ID。默认情况下,如果你在 git checkout 中运行它,gitlab-jobs 会尝试从 'origin' git 远程 URL 中猜测它。否则,您必须指定它(可以是像 1234 这样的数字,也可以是“组/项目”,它们之间有斜线)

gitlab-jobs --project GROUP/PROJECT ...

帮助可通过

$ gitlab-jobs --help
usage: gitlab_jobs.py [-h] [--version] [-v] [-g GITLAB] [-p ID] [-b REF] [--all-branches]
                      [--all-pipelines] [-l N] [--csv FILENAME] [--debug]

Show GitLab pipeline job durations.

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -v, --verbose         print more information
  -g GITLAB, --gitlab GITLAB
                        select configuration section in ~/.python-gitlab.cfg
  -p ID, --project ID   select GitLab project ("group/project" or the numeric ID)
  -b REF, --branch REF, --ref REF
                        select git branch
  --all-branches        do not filter by git branch
  --all-pipelines       include pipelines that were not successful
  -l N, --limit N       limit analysis to last N pipelines
  --csv FILENAME        export raw data to CSV file
  --debug               print even more information, for debugging

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

gitlab-jobs-1.1.0.tar.gz (43.3 kB 查看哈希)

已上传 source

内置分布

gitlab_jobs-1.1.0-py3-none-any.whl (17.9 kB 查看哈希)

已上传 py3