The REPOSITORY variable is used to set the main/base path for the
(reprepro) repositories (defaulting to /srv/repository). This
REPOSITORY setting could be defined via /etc/jenkins/debian_glue.
Since we are sourcing /etc/jenkins/debian_glue in our scripts
this overwrites a possibly existing environment variables named
REPOSITORY, preventing us to overwrite the REPOSITORY setting on
demand as needed as soon as REPOSITORY is configured in
/etc/jenkins/debian_glue.
To fix that behaviour we hereby rename the REPOSITORY variable to
DEFAULT_REPOSITORY while being backwards compatible. If you have
configured REPOSITORY via /etc/jenkins/debian_glue please rename
it to DEFAULT_REPOSITORY instead. In an upcoming release we might
drop backwards compatibility.
Thanks: Jean Baptiste Favre for the bug report
Introduce the env variable JENKINS_DEBIAN_GLUE_QUIET to turn off the
bash option 'set -x' in various scripts.
To mute them, simply set the variable to any value.
If the user invokes generate-reprepro-codename with options
'--origin Foo' 'reposname' then we end up in an endless loop.
Instead abort and inform the user about the wrong usage.
Architectures, components and udeb components are now configurable by either
using parameters or environment variables. Parameters will overwrite
environment variables.
The udeb components parameter value may be explicitly(!) empty (e.g.
--udeb-components "") in which case UDebComponents is not set in the created
distribution. If no parameters or environment variables are given, sane
defaults are used.
With bad timing we might run into something like this:
| + grep -q '^Codename: release-mr3.2$' /srv/repository/release/release-mr3.2/conf/distributions
| + echo 'Codename/repository release-mr3.2 exists already, ignoring request to add again.'
| Codename/repository release-mr3.2 exists already, ignoring request to add again.
Use flock(1) from util-linux to lock access to the
reprepro configuration file.
Related to commit 14f3559a
Closes: MT#4751
Development sponsored by Sipwise GmbH
Support setting PROVIDE_ONLY for skipping cowbuilder stage
and BUILD_ONLY for skipping reprepro repository stage.
Drop REMOTE_REPOS configuration variable, as the name actually
doesn't reflect what the script supports nor is it of any use
in the main configuration file when having PROVIDE_ONLY and
BUILD_ONLY available.
This provides the base for using $job-source, $job-binaries and
$job-repos to get the build process scaling and distributed on
specific slaves.