Skip to main content

look at GitLab CI pipeline results from the command line

Project description

https://github.com/mgedmin/gitlab-trace/workflows/build/badge.svg?branch=master https://coveralls.io/repos/mgedmin/gitlab-trace/badge.svg?branch=master

Sometimes I want to look at the GitLab CI build status from my terminal

$ gitlab-trace
GitLab project: Foretagsdeklaration/foretagsdeklaration
Available jobs for pipeline #84214:
   --job=500786 - success - build_server
   --job=500787 - success - build_client
   --job=500788 - success - test_safety
   --job=500789 - success - test_dev_safety
   --job=500790 - success - test_bandit
   --job=500791 - success - test_crontabs
   --job=500792 - success - test_newrelic
   --job=500793 - success - unittests_server
   --job=500794 - success - unittests_client
   --job=500795 - success - build_docker_image
   --job=500796 - failed - test_robot
   --job=500797 - success - test_robot_bolfin

You can take a closer look at a failed job by passing the job ID

$ gitlab-trace --job=500796
...
Uploading artifacts...
robottests/output: found 540 matching files
Uploading artifacts to coordinator... ok            id=500796 responseStatus=201 Created token=6yaRqQPr
ERROR: Job failed: exit code 1

You can watch a job while it is running

$ gitlab-trace --job=500796 --tail --follow
...
Uploading artifacts...
robottests/output: found 540 matching files
Uploading artifacts to coordinator... ok            id=500796 responseStatus=201 Created token=6yaRqQPr
ERROR: Job failed: exit code 1

You can watch the currently running job

$ gitlab-trace --running --tail --follow
...
Uploading artifacts...
robottests/output: found 540 matching files
Uploading artifacts to coordinator... ok            id=500796 responseStatus=201 Created token=6yaRqQPr
ERROR: Job failed: exit code 1

You can look at a different branch

$ gitlab-trace --branch=master
GitLab project: Foretagsdeklaration/foretagsdeklaration
https://git.vaultit.org/Foretagsdeklaration/foretagsdeklaration/pipelines/84185
Available jobs for pipeline #84185:
   --job=500692 - success - build_server
   --job=500693 - success - build_client
   --job=500694 - success - test_safety
   --job=500695 - success - test_dev_safety
   --job=500696 - success - test_bandit
   --job=500697 - success - test_crontabs
   --job=500698 - success - test_newrelic
   --job=500699 - success - unittests_server
   --job=500700 - success - unittests_client
   --job=500701 - success - build_docker_image
   --job=500702 - failed - test_robot
   --job=500703 - success - test_robot_bolfin
   --job=500704 - success - tag_docker_image
   --job=500705 - manual - deploy_stv_managedkube_alpha
   --job=500706 - manual - deploy_id06_alpha
   --job=500707 - manual - deploy_id06_alpha_fs31
   --job=500708 - manual - deploy_id06_beta
   --job=500709 - manual - deploy_id06_beta_fs31
   --job=500710 - manual - deploy_stv_alpha
   --job=500747 - success - test_robot

You can look at the Nth latest pipeline

$ gitlab-trace -1   # the latest one, default when run with no arguments

$ gitlab-trace -2   # the one before that

$ gitlab-trace --branch=mybranch -1   # the last one on this branch

You can look at a specific pipeline by ID

$ gitlab-trace 84185

You can look at a specific job in that pipeline

$ gitlab-trace 84185 test_robot

If a job has been retried several times you can look at a specific run

$ gitlab-trace 84185 test_robot 1

$ gitlab-trace 84185 test_robot 2

Installation

pip3 install --user gitlab-trace should take care of everything, just make sure ~/.local/bin is on your $PATH.

Or you may want to use a script installer like pipx (my favourite).

Configuration

Create a ~/.python-gitlab.cfg like this:

[global]
default = mygitlab

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

You can create a private access token in your GitLab profile settings. It’ll need the “read_api” access scope.

Usage

Help is available via

$ gitlab-trace --help
usage: gitlab-trace [-h] [--version] [-v] [--debug] [-g NAME] [-p ID]
                    [--job ID] [--running] [-b NAME] [-t [N]] [-f]
                    [--print-url] [-a]
                    [PIPELINE-ID] [JOB-NAME] [NTH-JOB-OF-THAT-NAME]

gitlab-trace: show the status/trace of a GitLab CI pipeline/job.

positional arguments:
  PIPELINE-ID           select a GitLab CI pipeline by ID (default: the last
                        pipeline of a git branch)
  JOB-NAME              select a GitLab CI pipeline job by name
  NTH-JOB-OF-THAT-NAME  select n-th GitLab CI pipeline job by this name
                        (default: the last one)

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -v, --verbose         print more information
  --debug               print even more information, for debugging
  -g NAME, --gitlab NAME
                        select configuration section in ~/.python-gitlab.cfg
  -p ID, --project ID   select GitLab project ('group/project' or the numeric
                        ID)
  --job ID              show the trace of GitLab CI job with this ID
  --running             show the trace of the currently running GitLab CI job,
                        if there is one (if there's more than one, picks the
                        first one)
  -b NAME, --branch NAME, --ref NAME
                        show the last pipeline of this git branch (default:
                        the currently checked out branch)
  -t [N], --tail [N]    show the last N lines of the trace log
  -f, --follow          periodically poll and output additional logs as the
                        job runs
  --print-url, --print-uri
                        print URL to job page on GitLab instead of printing
                        job's log
  -a, --artifacts       download build artifacts

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitlab_trace-0.7.2.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

gitlab_trace-0.7.2-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file gitlab_trace-0.7.2.tar.gz.

File metadata

  • Download URL: gitlab_trace-0.7.2.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for gitlab_trace-0.7.2.tar.gz
Algorithm Hash digest
SHA256 17c4af90a2b98159134ab37551996800748d0288ff5e01d00346530feea4239a
MD5 d4f28fd933b286a7d579704d25229e85
BLAKE2b-256 61766193ab796f3cfd20f1f0f00d78a7596f20105346e34421b2bd2650b14608

See more details on using hashes here.

File details

Details for the file gitlab_trace-0.7.2-py3-none-any.whl.

File metadata

File hashes

Hashes for gitlab_trace-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7dac37db2d768cd63e5d51e49b508a55043a7c360f49914cac4fc9243531c070
MD5 fa497e876fbf40404f6fb2ada78413c0
BLAKE2b-256 b228573c6d4657ced1a1a833502822e459e1f7604263bf35a4cba05af12c4e57

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page