Skip to main content

Gentoo Build Publisher Command-Line Interface

Project description

CLI for Gentoo Build Publisher

Introduction

This is a command-line interface for Gentoo Build Publisher, a system that combines Gentoo Linux and CI/CD so that updating a Gentoo predictable and consistent.

This is a pip-installable Python package:

$ pip install gbpcli

Usage

The full command set supported:

usage: Command-line interface to Gentoo Build Publisher

Commands:

  * build - Schedule a build for the given machine in CI/CD
  * diff - Handler for subcommand
  * inspect - Show the machines builds as a tree
  * keep - Keep (or release) a build
  * latest - Show the latest build number for a machine
  * list - List a machine's builds
  * logs - Show build logs
  * machines - List machines with builds
  * notes - Show, search, and edit build notes
  * packages - List a build's packages
  * publish - Publish a build
  * pull - Pull a build
  * status - Show build details
  * tag - Add tags builds

positional arguments:
  {build,diff,inspect,keep,latest,list,logs,machines,notes,packages,publish,pull,status,tag}

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --url URL             GBP url
  --color WHEN          colorize output ('always', 'never', 'auto')
  --my-machines MY_MACHINES
                        whitespace-delimited list of machine names to filter
                        on when using the --mine argument. Typically one would
                        instead use the GBPCLI_MYMACHINES environment
                        variable.

The URL for the Gentoo Build Publisher may be provided via the command line or by using the BUILD_PUBLISHER_URL environment variable.

To list the machines which have builds use gbp machines:

https://raw.githubusercontent.com/enku/gbpcli/master/assets/gbp_machines.svg

The "Latest" column shows the latest build ID for the given machine. If the ID is in bold it that denotes that the latest build is published (available for emerges).

To list the available builds for a given machine us gbp list <machine>:

https://raw.githubusercontent.com/enku/gbpcli/master/assets/gbp_list.svg

In the above example, the P output for build 103 signifies that this build is currently published. The * flag means that the respective build has new binary packages. The K for build 46 means that the build is marked for keeping and will not be removed during the purge process. Build 2 has also been given a "first" tag. The N flag for build 126 means that the build has a note attached.

$ gbp status jenkins-buildah 126

https://raw.githubusercontent.com/enku/gbpcli/master/assets/gbp_status.svg

Edit/delete build notes using the gbp notes command.

The status subcommand displays metadata about a given build. If the build number is not given, it defaults to the latest build for that machine.

The diff subcommand display differences between two builds.

$ gbp diff jenkins-buildah 103 126

https://raw.githubusercontent.com/enku/gbpcli/master/assets/gbp_diff.svg

If the second build number is not given, it defaults to the latest build for that machine. If the first build number is not given, it defaults to the published build for that machine.

The publish subcommand makes the given build available for syncing and updating/downgrading.

$ gbp publish arm64-base 151

If the build number is not given, it defaults to the latest build for that machine.

The build subcommand can schedule a build in CI/CD for the given machine, e.g.:

$ gbp build babette

Configuration

In addition to the command-line flags, gbpcli can also be configured using a configuration file. If a the file ~/.config/gbpcli.toml exists it will be read and used to configure gbpcli. This file should be toml formatted. For example:

[gbpcli]
url = "http://gbpbox/"
my_machines = ["babette", "lighthouse", "polaris"]
auth = { user = "marduk", api_key = "myapikey" }

The url setting can be used in place of the --url command-line option or the BUILD_PUBLISHER_URL environment variable. The my_machines settings can be used in place of the --my-machines command-line option or the GBPCLI_MYMACHINES environment variable. The auth setting can only be supplied through the configuration file.

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

gbpcli-2.3.0.tar.gz (50.5 kB view details)

Uploaded Source

Built Distribution

gbpcli-2.3.0-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file gbpcli-2.3.0.tar.gz.

File metadata

  • Download URL: gbpcli-2.3.0.tar.gz
  • Upload date:
  • Size: 50.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for gbpcli-2.3.0.tar.gz
Algorithm Hash digest
SHA256 dbe7f07df79ef1fe1119f271c8ce2016164ffc563a12fb426058c1e1aa16062e
MD5 684e1e9e1518a6c7235d379a513a237c
BLAKE2b-256 ef172aca19eae8cb271f41cf4f61af8f443ccff98adaf1fd596e263d2e5e1a31

See more details on using hashes here.

File details

Details for the file gbpcli-2.3.0-py3-none-any.whl.

File metadata

  • Download URL: gbpcli-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 35.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for gbpcli-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 924bb1fe7ec19692412c3653c4d013277fa0def2d424af4db80c845732ec83ed
MD5 138941255fc472c8d780d0232be45776
BLAKE2b-256 03ce386647f1e9f2bce1447976ac69708ae81ee85aa2ae3e4be8b54ffb9282c7

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