1bdep-ci(1)                  General Commands Manual                 bdep-ci(1)
2
3
4

NAME

6       bdep-ci - submit project test request to CI server
7

SYNOPSIS

9       bdep ci [options] [cfg-spec] [pkg-spec]
10
11       cfg-spec = (@cfg-name | --config|-c cfg-dir)... | --all|-a | --forward
12       pkg-spec = (--directory|-d pkg-dir)... | prj-spec
13       prj-spec = --directory|-d prj-dir
14

DESCRIPTION

16       The  ci  command  submits  the  project  packages  test request to a CI
17       server.
18
19       If no project or package directory is specified, then the current work‐
20       ing  directory  is  assumed. If no configuration is specified, then the
21       default configurations are  used.  If  the  specified  directory  is  a
22       project  directory, then all the packages initialized in the configura‐
23       tions are submitted, unless the --forward option is specified (see  be‐
24       low).  See  bdep-projects-configs(1) for details on specifying projects
25       and configurations.
26
27       A CI request consists of the specified packages and their  versions  as
28       well as the project's remote version control repository URL correspond‐
29       ing to the current (local) state of the project. The CI  server  should
30       be able to fetch these package versions from this repository as well as
31       any dependencies from this repository  or  its  prerequisite/complement
32       repositories, according to each package's repositories.manifest.
33
34       If  the CI server is not explicitly specified with the --server option,
35       the request is submitted to ci.cppget.org by default.
36
37       Unless the remote repository URL is specified with the --repository op‐
38       tion,  it will be automatically derived from the version control's "re‐
39       mote" URL. In case of git(1), it will be based on the remote.origin.url
40       configuration value unless overridden with remote.origin.build2Url. The
41       repository URL is then adjusted to corresponding to the current (local)
42       state  of the project. In case of git(1), the current branch and commit
43       id are added as  the  repository  URL  fragment  (see  bpkg-repository-
44       types(1) for details).
45
46       Some  package  manifest  values can be overridden as part of the CI re‐
47       quest submission using the --override and --overrides-file  options  as
48       well as their --builds, --build-config, --target-config, --package-con‐
49       fig, and --build-email shortcuts. This is primarily useful for specify‐
50       ing  alternative build configurations and/or build notification emails.
51       For example:
52
53       $ bdep ci --builds gcc
54       $ bdep ci --builds network/gcc
55       $ bdep ci --target-config 'linux*-gcc*'
56       $ bdep ci --package-config network
57       $ bdep ci --build-config 'network/linux*-gcc*'
58
59       $ bdep ci --override \
60         'default-build-config: config.foo.cache=true config.foo.buffer=16'
61
62       $ bdep ci --override 'mytest-build-config: config.foo.cache=true' \
63         --package-config mytest
64
65       Manifest overrides override the entire value group that they belong to.
66       Currently,   the   following   value  groups  can  be  overridden.  The
67       build-*email group is overridden by default  as  if  by  specifying  an
68       empty build email.
69
70       build-email build-{warning,error}-email
71       builds build-{include,exclude}
72       *-builds *-build-{include,exclude}
73       *-build-config
74
75       For  the  package configuration-specific build constraint overrides the
76       corresponding configuration must exist in the package manifest. In con‐
77       trast,  the  package configuration override (*-build-config) adds a new
78       configuration if it doesn't exist and updates the arguments of the  ex‐
79       isting  configuration  otherwise. In the former case, all the potential
80       build constraint overrides for such a newly  added  configuration  must
81       follow the corresponding *-build-config override.
82
83       Note  that  the  build  constraints group values (both common and build
84       package configuration-specific) are overridden hierarchically  so  that
85       the  [*-]build-{include,exclude}  overrides don't affect the respective
86       [*-]builds values.
87
88       Note also that the  common  and  build  package  configuration-specific
89       build  constraints group value overrides are mutually exclusive. If the
90       common build constraints are overridden, then  all  the  configuration-
91       specific  constraints are removed. Otherwise, if any configuration-spe‐
92       cific constraints are overridden, then for the remaining configurations
93       the build constraints are reset to builds: none.
94
95       If  supported  by the CI service, a package can be tested interactively
96       in a specific build configuration using the --interactive|-i option. In
97       this  mode the CI service provides the login information for the execu‐
98       tion environment and pauses the testing at the specified breakpoint.
99
100       While the exact interpretation of the CI request depends  on  the  spe‐
101       cific  service,  normally,  the CI server will respond with a reference
102       that can be used to query the results. See Package CI (#ci) for details
103       on the CI request handling.
104
105       If  the --forward option is specified then the forwarded configurations
106       are used instead of the default  configurations.  In  particular,  this
107       means  that in this mode the project doesn't need to be initialized and
108       all that's required is for package's source directories to  be  config‐
109       ured  to  forward to an out of source build configuration (see b(1) for
110       details on forwarded configurations). This, for example, can be used to
111       submit packages that don't use the standard version.
112

CI OPTIONS

114       --yes|-y
115              Don't prompt for confirmation before submitting.
116
117       --interactive|-i cf[:bp]
118              Test the package interactively in the specified build configura‐
119              tion, pausing the execution at  the  specified  breakpoint.  The
120              build  configuration  is a target configuration (tc), optionally
121              for a specific package configuration (pc) and/or for a  specific
122              target (tg):
123
124              cf = [pc/]tc | pc/tc/tg
125
126              Refer to the --build-config option for details on the build con‐
127              figuration component semantics. Note that for interactive  test‐
128              ing  they  should  identify a single build configuration. Failed
129              that, the test request will be aborted.
130
131              Valid breakpoint values are none (don't stop), error (stop after
132              first error), warning (stop after first warning), as well as the
133              CI service-specific step ids in which case the  execution  stops
134              before  performing  the specified step (see bbot worker step ids
135              (bbot#arch-worker)). If no breakpoint is specified,  then  error
136              is assumed.
137
138       --server url
139              CI server to submit the request to.
140
141       --repository url
142              Remote repository URL for the project.
143
144       --override name:value
145              Package  manifest value override. Repeat this option to override
146              multiple values.
147
148       --overrides-file file
149              Read manifest value overrides from the specified manifest  frag‐
150              ment  file.   Repeat  this  option  to specify multiple override
151              files.
152
153       --builds [pc/]class-expr
154              Shortcut for the following option:
155
156              --override [pc-]builds:class-expr
157
158              Repeat this option to specify multiple build  target  configura‐
159              tion classes.
160
161       --build-config pc/tc[/tg]
162              Shortcut for the following options sequence:
163
164              --override pc-builds:all
165              --override pc-build-include:tc[/tg]
166              --override pc-build-exclude:**
167
168              Repeat this option to specify multiple build configurations.
169
170       --target-config tc[/tg]
171              Shortcut for the following options sequence:
172
173              --override builds:all
174              --override build-include:tc[/tg]
175              --override build-exclude:**
176
177              Repeat  this  option to specify multiple build target configura‐
178              tions.
179
180       --package-config pc
181              Shortcut for the following options sequence:
182
183              --override pc-builds:...
184              --override pc-build-include:...
185              --override pc-build-exclude:...
186
187              Where the override values are  the  build  constraints  for  the
188              specified build package configuration from the package manifest.
189
190              Repeat  this option to specify multiple build package configura‐
191              tions.
192
193       --build-email email
194              Shortcut for the following option:
195
196              --override build-email:email
197
198       --simulate outcome
199              Simulate the specified outcome of the CI process  without  actu‐
200              ally  performing any externally visible actions (such as testing
201              the packages or publishing the result). The commonly  used  out‐
202              come  value  is  success. For other recognized outcomes refer to
203              the CI service documentation.
204
205       --forward
206              Use the forwarded configuration for each package instead of  the
207              default configuration.
208
209       --all|-a
210              Use all build configurations.
211
212       --config|-c dir
213              Specify the build configuration as a directory.
214
215       --directory|-d dir
216              Assume project/package is in the specified directory rather than
217              in the current working directory.
218
219       --config-name|-n name
220              Specify the build configuration as a name.
221
222       --config-id num
223              Specify the build configuration as an id.
224

COMMON OPTIONS

226       The common options are summarized below with a more  detailed  descrip‐
227       tion available in bdep-common-options(1).
228
229       -v     Print essential underlying commands being executed.
230
231       -V     Print all underlying commands being executed.
232
233       --quiet|-q
234              Run quietly, only printing error messages.
235
236       --verbose level
237              Set the diagnostics verbosity to level between 0 and 6.
238
239       --stdout-format format
240              Representation format to use for printing to stdout.
241
242       --jobs|-j num
243              Number of jobs to perform in parallel.
244
245       --progress
246              Display progress indicators for long-lasting operations, such as
247              network transfers, building, etc.
248
249       --no-progress
250              Suppress progress indicators for long-lasting  operations,  such
251              as network transfers, building, etc.
252
253       --diag-color
254              Use color in diagnostics.
255
256       --no-diag-color
257              Don't use color in diagnostics.
258
259       --bpkg path
260              The  package  manager program to be used for build configuration
261              management.
262
263       --bpkg-option opt
264              Additional option to be passed to the package manager program.
265
266       --build path
267              The build program to be used to build packages.
268
269       --build-option opt
270              Additional option to be passed to the build program.
271
272       --curl path
273              The curl program to be used for network operations.
274
275       --curl-option opt
276              Additional option to be passed to the curl program.
277
278       --pager path
279              The pager program to be used to show long text.
280
281       --pager-option opt
282              Additional option to be passed to the pager program.
283
284       --options-file file
285              Read additional options from file.
286
287       --default-options dir
288              The directory to load additional default options files from.
289
290       --no-default-options
291              Don't load default options files.
292

DEFAULT OPTIONS FILES

294       See bdep-default-options-files(1) for an overview of  the  default  op‐
295       tions  files.  For  the  ci  command  the search start directory is the
296       project directory. The following options files are searched for in each
297       directory and, if found, loaded in the order listed:
298
299       bdep.options
300       bdep-ci.options
301
302       The following ci command options cannot be specified in the default op‐
303       tions files:
304
305       --directory|-d
306

BUGS

308       Send bug reports to the users@build2.org mailing list.
309
311       Copyright (c) 2014-2023 the build2 authors.
312
313       Permission is granted to copy, distribute and/or modify  this  document
314       under the terms of the MIT License.
315
316
317
318bdep 0.16.0                        June 2023                        bdep-ci(1)
Impressum