From f3c17ab56c9d06c2b99729c2e4b60e8fd19cbb37 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 18 Oct 2017 13:40:32 +0200 Subject: Document config option/variable prefix --- bbot/worker/worker.cxx | 2 +- doc/manual.cli | 124 ++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 97 insertions(+), 29 deletions(-) diff --git a/bbot/worker/worker.cxx b/bbot/worker/worker.cxx index 91d4a56..93e3ca2 100644 --- a/bbot/worker/worker.cxx +++ b/bbot/worker/worker.cxx @@ -477,7 +477,7 @@ build (size_t argc, const char* argv[]) } } - // b create(, ) + // b create(, ) // // b.test-installed.create // diff --git a/doc/manual.cli b/doc/manual.cli index aa0f92d..f18541f 100644 --- a/doc/manual.cli +++ b/doc/manual.cli @@ -287,7 +287,7 @@ repository: machine: target: -[config]: +[config]: [warning-regex]: \ @@ -364,10 +364,10 @@ triplet} format as autotools for \c{target}, it is not flexible enough for \h2#arch-task-config|\c{config}| \ -[config]: +[config]: \ -The additional build system configuration variables. A single level of quotes +The additional configuration options and variables. A single level of quotes (either single or double) is removed in each variable before being passed to \c{bpkg}. For example, the following value: @@ -381,7 +381,9 @@ Will be passed to \c{bpkg} as the following (single) argument: config.cc.coptions=-O3 -stdlib='libc++' \ -Variables can be separated with spaces or newlines. +Values can be separated with spaces or newlines. See \l{#arch-controller +Controller Logic} for details. + \h2#arch-task-warning-regex|\c{warning-regex}| @@ -675,7 +677,7 @@ task response. The \c{bbot} worker builds each package in a \i{build environment} that is established for a particular build target. The environment has three components: the execution environment (environment variables, etc), build -system modules, and configuration variables. +system modules, as well as configuration options and variables. Setting up of the environment is performed by an executable (script, batch file, etc). Specifically, upon receiving a build task, the worker obtains its @@ -696,23 +698,74 @@ The environment setup executable sets up the necessary execution environment for example by adjusting \c{PATH} or running a suitable \c{vcvars} batch file. It then re-executes itself as the \c{bbot} worker passing to it as command line arguments (in addition to worker options) the list of build system -modules (\c{}) and the list of configuration variables -(\c{}). The environment setup executable must execute the +modules (\c{}) and the list of configuration options and variables +(\c{}). The environment setup executable must execute the \c{bbot} worker in the build directory as the current working directory. The re-executed \c{bbot} worker then proceeds to test the package from the -repository by executing the following commands (\c{<>}-values are from the -task manifest and environment): +repository by executing the following commends, collectively called a +\i{worker script}. Each command has a unique \i{step id} that can be used as a +prefix in the \c{} and \c{} values as discussed +in \l{#arch-controller Controller Logic}. The \c{<>}-values are from the task +manifest and the environment: \ -bpkg -v create +# bpkg.configure.create +# +bpkg -v create + +# bpkg.configure.add +# bpkg -v add + +# bpkg.configure.fetch +# bpkg -v fetch --trust + +# bpkg.configure.build +# bpkg -v build --yes --configure-only / + +# bpkg.update.update +# bpkg -v update + +# bpkg.test.test +# bpkg -v test + +# if config.install.root is specified: +# +{ + # bpkg.install.install + # + bpkg -v install + + # if package contains tests/ subproject: + # + { + # b.test-installed.create + # + b create + + # b.test-installed.configure + # + b configure + + # b.test-installed.test + # + b test + } +} + +# bpkg.uninstall.uninstall +# +bpkg uninstall \ +For details on configuring and testing installation refer to +\l{#arch-controller Controller Logic}. + As an example, the following POSIX shell script can be used to setup the environment for building C and C++ packages with GCC 6 on most Linux distributions. @@ -747,22 +800,36 @@ machines (as reported by agents) to \i{build configurations} according to the are ignored. All other lines in this file have the following format: \ - [] [] + [] [] + + = [:](|