bdep-ci – submit project test request to CI server


bdep ci [options] [cfg-spec] [pkg-spec]

pkg-spec = (--directory|-d pkg-dir)... | prj-spec
prj-spec = --directory|-d prj-dir
cfg-spec = @cfg-name | --config|-c cfg-dir


The ci command submits the project packages test request to a CI server.

If no project or package directory is specified, then the current working directory is assumed. If no configuration is specified, then the default configuration is used. If the specified directory is a project directory, then all the packages initialized in the configuration are submitted. See bdep-projects-configs(1) for details on specifying projects and configurations.

A CI request consists of the specified packages and their versions as well as the project's remote version control repository URL corresponding to the current (local) state of the project. The CI server should be able to fetch these package versions from this repository as well as any dependencies from this repository or its prerequisite/complement repositories, according to each package's repositories.manifest.

If the CI server is not explicitly specified with the --server option, the request is submitted to by default.

Unless the remote repository URL is specified with the --repository option, it will be automatically derived from the version control's "remote" URL. In case of git(1), it will be based on the remote.origin.url configuration value unless overridden with remote.origin.build2Url. The repository URL is then adjusted to corresponding to the current (local) state of the project. In case of git(1), the current branch and commit id are added as the repository URL fragment (see bpkg-repository-types(1) for details).

Some package manifest values can be overridden as part of the CI request submission using the --override and --overrides-file options as well as their --builds and --build-email shortcuts. This is primarily useful for specifying alternative build configurations and/or build notification emails. For example:

$ bdep ci --builds gcc

Note that manifest overrides override the entire value group that they belong to. Currently, the following value groups can be overridden with the build*-email group overridden by default as if by specifying an empty build email.

build-email build-{warning,error}-email
builds build-{include,exclude}

While the exact interpretation of the CI request depends on the specific service, normally, the CI server will respond with a reference that can be used to query the results. See Package CI for details on the CI request handling.


Don't prompt for confirmation before submitting.
--server url
CI server to submit the request to.
--repository url
Remote repository URL for the project.
--override name:value
Package manifest value override. Repeat this option to override multiple values.
--overrides-file file
Read manifest value overrides from the specified manifest fragment file. Repeat this option to specify multiple override files.
--builds class-expr
Shortcut for --override builds:class-expr.
--build-email email
Shortcut for --override build-email:email.
--simulate outcome
Simulate the specified outcome of the CI process without actually performing any externally visible actions (such as testing the packages or publishing the result). The commonly used outcome value is success. For other recognized outcomes refer to the CI service documentation.
Use all build configurations.
--config|-c dir
Specify the build configuration as a directory.
--directory|-d dir
Assume project/package is in the specified directory rather than in the current working directory.
--config-name|-n name
Specify the build configuration as a name.
--config-id num
Specify the build configuration as an id.


The common options are summarized below with a more detailed description available in bdep-common-options(1).

Print essential underlying commands being executed.
Print all underlying commands being executed.
Run quietly, only printing error messages.
--verbose level
Set the diagnostics verbosity to level between 0 and 6.
--jobs|-j num
Number of jobs to perform in parallel.
Suppress progress indicators for long-lasting operations, such as network transfers, building, etc.
--bpkg path
The package manager program to be used for build configuration management.
--bpkg-option opt
Additional option to be passed to the package manager program.
--build path
The build program to be used to build packages.
--build-option opt
Additional option to be passed to the build program.
--curl path
The curl program to be used for network operations.
--curl-option opt
Additional option to be passed to the curl program.
--pager path
The pager program to be used to show long text.
--pager-option opt
Additional option to be passed to the pager program.
--options-file file
Read additional options from file.
--default-options dir
The directory to load additional default options files from.
Don't load default options files.


See bdep-default-options-files(1) for an overview of the default options files. For the ci command the search start directory is the project directory. The following options files are searched for in each directory and, if found, loaded in the order listed:


The following ci command options cannot be specified in the default options files:



Send bug reports to the mailing list.