Thibaut VARÈNE [Tue, 26 Jun 2018 15:48:08 +0000 (17:48 +0200)]
phase1: restore 'build' directory after expiry
expire.sh wipes the salve 'build' directory, which throws the next step
out of its track as os.path.exists() and os.makedirs() do not agree.
Recreate the 'build' directory after expire has deleted everything.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Tue, 26 Jun 2018 14:29:48 +0000 (16:29 +0200)]
phase1: remove renderable locks: not supported in 0.8.9
Support for renderable locks was only added in buildbot 0.9.0
0.8.9 fails with:
File "/usr/lib/python2.7/dist-packages/buildbot/process/buildstep.py", line 266, in startStep
for access in self.locks]
exceptions.TypeError: '_Renderer' object is not iterable
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 25 Jun 2018 10:27:00 +0000 (12:27 +0200)]
phase1: use Interpolate instead of WithProperties
WithProperties is marked as deprecated since buildbot 0.8.7.
Trying to make the config future-proof, this patch replaces every
instance of WithProperties() by the corresponding Interpolate()
equivalent.
As of buildbot 0.8.9 it appears that Interpolate() doesn't correctly
handle integer format with parameters that call a function, so make
GetNumJobs() return a string:
File "phase1/master.cfg", line 672, in <module>
command = ["make", Interpolate("-j%(kw:jobs)d", jobs=GetNumJobs), "tools/tar/compile", "V=s"],
fmtstring % dd
exceptions.TypeError: %d format: a number is required, not str
Configuration Errors:
error while parsing config file: %d format: a number is required, not str (traceback in logfile)
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 22 Jun 2018 13:25:47 +0000 (15:25 +0200)]
phase1: add config option for shared workdir
This patch adds a per-slave configuration option:
shared_wd = <boolean>
This option defaults to False if unset, and should be set to True for
slaves that share a single workdir among all workers.
When it is True, expires.sh and cleanup.sh are disabled as the workdir
housekeeping is entirely handled by the Git() step and the value of the
'do_cleanup' configuration option.
expires.sh and cleanup.sh are unnecessary and potentially detrimental in
this context.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 22 Jun 2018 09:08:11 +0000 (11:08 +0200)]
phase1: delete unused code
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 22 Jun 2018 09:56:40 +0000 (11:56 +0200)]
phase1: s/SetProperty/SetPropertyFromCommand/
shell.SetProperty() is a deprecated name for SetPropertyFromCommand()
SetProperty() in buildbot documentation refers to master.SetProperty
which behaves in a completely different way
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 22 Jun 2018 14:17:06 +0000 (16:17 +0200)]
phase1: move max_builds to slave properties
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 22 Jun 2018 10:16:36 +0000 (12:16 +0200)]
phase1: use do_cleanup to select Git() method
Git() parameters cannot accept a renderer such as Interpolate() (this
feature is only available from buildbot version 0.8.10).
To implement this feature in 0.8.9 we have to split the 'fresh' and
'clean' cases and make them separate steps that are mutually exclusive
(via doStepIf).
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 22 Jun 2018 12:25:17 +0000 (14:25 +0200)]
phase1: move do_cleanup to slave properties
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 21 Jun 2018 18:16:42 +0000 (20:16 +0200)]
phase1: report ccache stats at end of build
ccache.sh tries to report ccache statistics but at the time this
script is run, the ccache binary hasn't been built and is thus
unavailable.
This patch tries to run 'ccache -s' at the end of the build. It
will look for ccache in the staging_dir first then in the host PATH.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 21 Jun 2018 19:14:14 +0000 (21:14 +0200)]
phase1: opportunistic use of ccache
Assuming that CONFIG_CCACHE is disabled in the target config.seed,
this patch tries to enable the use of ccache (if available from the host)
for the 'dltar' and 'tools' steps, which are the only two steps where the
build objects are shared by /all/ workers, and thus the two steps where
caching makes the most sense and should provide the most benefits.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 21 Jun 2018 18:11:53 +0000 (20:11 +0200)]
phase1: download ccache.sh to slavedir
Align behaviour with other script downloads.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 21 Jun 2018 16:39:41 +0000 (18:39 +0200)]
phase1: remove redundant git steps and document
Based on buildbot documentation and the contents of
`buildbot/steps/source/git.py'
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 21 Jun 2018 15:31:56 +0000 (17:31 +0200)]
phase1: Git step method 'clean' only works in mode 'full'
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 21 Jun 2018 10:22:00 +0000 (12:22 +0200)]
phase1: don't expire the tree if cleanup is requested
expire.sh will wipe the git repository, which is unnecessary and
adds overhead (redownload) if cleanup is already enacted.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 21 Jun 2018 09:04:37 +0000 (11:04 +0200)]
phase1: do not exceed nproc build concurrency
Contrary to popular belief, exceeding the number of available CPU cores
in parallel builds (by running e.g. 'make -j$(($nproc+1))' where 'nproc'
is the number of active CPUs on the system) brings no performance benefit,
and may in fact negatively affect build times. This performance hit can
be further aggravated by the extra memory pressure resulting from the
extraneous jobs.
See:
- https://blog.regehr.org/archives/1416
- http://blog.stuffedcow.net/2011/08/hyperthreading-performance/
This is particularly relevant in two distinct cases:
- on hyper-threaded systems, where half of the active CPUs are separate
threads on the same physical core;
- on virtualized guests systems, where the host physical CPUs are already
affected by system overhead not visible to the guest.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 20 Jun 2018 18:42:47 +0000 (20:42 +0200)]
phase1: update config.seed.example with CCACHE=n, AUTOREMOVE=y
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 20 Jun 2018 17:05:05 +0000 (19:05 +0200)]
phase1: kernelversion: add missing LF
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 20 Jun 2018 17:03:01 +0000 (19:03 +0200)]
phase1: "Building and installing" for appropriate steps
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 21 Jun 2018 11:51:26 +0000 (13:51 +0200)]
phase1: don't enable rsync compression where unnecessary
Enabling rsync compression for already compressed files adds CPU
and memory overhead that negatively impacts upload speed on data
that cannot be further compressed.
By default rsync ignores '-z' on a number of files it knows to be
already compressed (based on filename suffix), but the list is not
exhaustive and doesn't include e.g. '.ipk'. Instead of trying to maintain
a list of all known compressed suffixes uploaded by the build system,
it's simpler and less error prone to simply disable the option for
specific steps where all or nearly all of the transferred files are known
to be already compressed.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 20 Jun 2018 18:37:59 +0000 (20:37 +0200)]
phase1: reduce verbosity of rsync
The purpose of this patch is to reduce uplink bandwidth contention when
rsync uploads are running.
This patch:
- replaces '-v' and '--progress' by '--info=name' in rsync's parameter
list (assuming it's necessary to output a list of updated files)
- introduces a wrapper script 'rsync.sh' which checks for the presence
and executability of 'pv' and pipes the output of rsync through
'pv -t -i 60 -f' if possible, and falls back to plain rsync otherwise.
'--info=name' prints one line to stdout for each file that is updated on
the remote side.
'pv -t -i 60 -f' prints a 1mn-resolution timer to stderr, with the goal
of preventing the current buildbot step to timeout due to lack of process
output.
It's worth noting that '--progress' did not prevent some timeouts (most
notably on the 'sourceupload' step) since --progress only emits output
for files that are updated on the remote side.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 20 Jun 2018 15:36:02 +0000 (17:36 +0200)]
phase1: rsync: use --size-only instead of --checksum
'--checksum' puts heavy I/O and memory load on both the sender and the
receiver and dramatically reduces rsync's speedup. Furthermore, if
multiple slaves are uploading at once the receiver may become overloaded,
slowing down the whole build farm. From rsync manpage:
Generating the checksums means that both sides will expend a lot of
disk I/O reading all the data in the files in the transfer (and this
is prior to any reading that will be done to transfer changed files),
so this can slow things down significantly.
This slowdown causes timeouts for some build slaves, noticeably in the
'sourceupload' step.
'--size-only' matches files by size only. Compared to '--checksum', it is
faster, and does not aggravate the collision/error risk (if two files of
the same name and size have different checksums, we don't have a heuristic
to determine which is "correct" and which is "invalid" anyway)
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 7 Jun 2018 17:12:38 +0000 (19:12 +0200)]
phase1: provide upload/download locking
This patch offers an optional locking mechanism to ensure that specific
build slaves do not perform concurrent network operations
Each slave definition can feature two additional options:
ul_lock = <lock identifier string>
dl_lock = <lock identifier string>
In the scenario where a group of build slaves share the same physical
network link, these variables can be used as follows:
If the link is full duplex capable, each slave from the target group
would be configured with e.g.:
dl_lock = slavegroup1_dl
ul_lock = slavegroup1_ul
This enables separate locks for uplink and downlink.
If the link is not full duplex capable, then each slave from the target
group would be configured with e.g.:
dl_lock = slavegroup1
ul_lock = slavegroup1
Effectively making uplink and downlink share the same lock
If neither option is set, no lock is enforced and the patch is a no-op.
In this patch the locks are only applied to steps that cause significant
network traffic.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Jo-Philipp Wich [Wed, 20 Jun 2018 14:43:59 +0000 (16:43 +0200)]
phase1: add kmod archiving and cleanup settings
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 20 Jun 2018 14:43:58 +0000 (16:43 +0200)]
phase2: cleanup.sh: add hack to remove npm / jsmake debris
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 6 Jun 2018 20:04:01 +0000 (22:04 +0200)]
sourceupload: add slave name to rsync temp directory name
This solves clashes when the same target builders on different clusters
upload source archives at the same time.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 9 Jan 2018 14:33:04 +0000 (15:33 +0100)]
phase1: move cleanup.sh script out of build/ subdir
When cleanup.sh itself is placed into the build/ subdir, subsequent Git()
source steps will fail with a directory not empty error.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Sat, 9 Dec 2017 14:02:12 +0000 (15:02 +0100)]
phase2: LEDE -> OpenWrt rebranding
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 6 Dec 2017 15:25:21 +0000 (16:25 +0100)]
phase1: add support for per-slave cleanup
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 6 Dec 2017 14:55:21 +0000 (15:55 +0100)]
phase2: abort if ccache or dl/ setup failed
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 6 Dec 2017 14:54:11 +0000 (15:54 +0100)]
phase1: ccache.sh: fail on error
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Alexander Couzens [Fri, 3 Mar 2017 00:27:34 +0000 (01:27 +0100)]
phase1: rename gpg signature files .gpg -> .asc
gnupg doesn't recognize .gpg files by it's extension.
> gpg --verify sha256sums.gpg
>> gpg: no signed data
>> gpg: can't hash datafile: No data
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Jo-Philipp Wich [Thu, 2 Nov 2017 14:39:34 +0000 (15:39 +0100)]
phase1: dumpinfo.pl: honour source-only flag for subtargets as well
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 3 Oct 2017 13:16:18 +0000 (15:16 +0200)]
phase1: remove automatic tagging support
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 3 Oct 2017 09:26:14 +0000 (11:26 +0200)]
phase2: add hack to derive base feed url from buildroot
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 22 Aug 2017 17:15:07 +0000 (19:15 +0200)]
phase2: prefer IPv4 for remote rsync operations
Various build slaves tend to have slow or unrelaible IPv6 connectivity
so instruct rsync to prefer IPv4 for file transfer.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 22 Aug 2017 17:14:23 +0000 (19:14 +0200)]
phase1: prefer IPv4 for remote rsync operations
Various build slaves tend to have slow or unrelaible IPv6 connectivity
so instruct rsync to prefer IPv4 for file transfer.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Thu, 16 Mar 2017 18:34:11 +0000 (19:34 +0100)]
phase1: do not perform shallow fetches
We do need the full history later on.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 14 Mar 2017 12:58:05 +0000 (13:58 +0100)]
phase1: fetch before checking out git branch
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 15 Feb 2017 09:08:23 +0000 (10:08 +0100)]
phase2: invoke feeds update with -f
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Felix Fietkau [Tue, 14 Feb 2017 13:20:42 +0000 (14:20 +0100)]
phase1: update config.seed.example for the new CONFIG_BUILDBOT option
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Jo-Philipp Wich [Mon, 6 Feb 2017 13:03:43 +0000 (14:03 +0100)]
phase1: fix bad argument to MasterShellCommand()
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 6 Feb 2017 13:03:05 +0000 (14:03 +0100)]
phase1: fix misspelled function name
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 6 Feb 2017 12:41:47 +0000 (13:41 +0100)]
phase1: prioritize tagged build requests
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 6 Feb 2017 12:30:09 +0000 (13:30 +0100)]
phase2: rely on rsync to merge updated SDK components
Relying on the file modtime is unreliable so we cannot trust tar's
--keep-newer-files to properly overwrite changed SDK components.
Extract into a different directory instead and use rsync with checksum
mode to replace updated SDK files.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 6 Feb 2017 12:27:26 +0000 (13:27 +0100)]
phase2: stop build process on compile failures
Do not proceed the build if package/compile failed in order to prevent
breaking the live repositories.
Since aborts in this phase usually happen due to out-of-space or other
unrecoverable issues, it makes no sense to continue processing the
partially finished build artifacts.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Thu, 2 Feb 2017 17:27:34 +0000 (18:27 +0100)]
phase2: increase package compilation timeout
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 31 Jan 2017 08:18:59 +0000 (09:18 +0100)]
phase1: maketag.sh: write version and version.date files as well
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Sun, 29 Jan 2017 16:51:33 +0000 (17:51 +0100)]
phase1: fix workdir of maketag.sh step
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Sat, 28 Jan 2017 13:01:50 +0000 (14:01 +0100)]
phase1: allow tag versions with rc designations
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Fri, 27 Jan 2017 16:24:31 +0000 (17:24 +0100)]
phase2: --keep-newer-files and --no-overwrite-dir are exclusive
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 24 Jan 2017 13:47:33 +0000 (14:47 +0100)]
phase1: ccache.sh: also overwrite dangling symlinks
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Felix Fietkau [Tue, 24 Jan 2017 11:45:29 +0000 (12:45 +0100)]
phase1/dumpinfo.pl: add a feature flag for skipping targets
Also get rid of the uml special case
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Jo-Philipp Wich [Mon, 23 Jan 2017 14:15:09 +0000 (15:15 +0100)]
phase1: fix GNU tar build target
Recent buildroots do not have a dedicated tools/*/install target anymore.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 23 Jan 2017 13:59:56 +0000 (14:59 +0100)]
phase1: move ccache.sh invocation step as well
The previous commit just moved the download step and not the actual invocation.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 23 Jan 2017 13:25:38 +0000 (14:25 +0100)]
phase2: set CCACHE_BASEDIR
Add CCACHE_BASEDIR to make environment in order to improve cache hit rate for
the global shared cache.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 23 Jan 2017 13:24:58 +0000 (14:24 +0100)]
phase1: set CCACHE_BASEDIR
Add CCACHE_BASEDIR to default environment in order to improve cache hit rate
for the global shared cache.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 23 Jan 2017 13:23:36 +0000 (14:23 +0100)]
phase1: move ccache preparation after defconfig
The ccache.sh helper script uses make targets to figure out staging_dir paths
which might trigger interactive menuconfig in case there is no populated
.config file yet, leading to command timeouts on fresh trees.
Move the ccache preparation step after defconfig in order to avoid triggering
menuconfig.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 23 Jan 2017 13:21:41 +0000 (14:21 +0100)]
phase1: ccache.sh: avoid creating nested symlink
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Sun, 22 Jan 2017 14:23:13 +0000 (15:23 +0100)]
phase1, phase2: add unified ccache handling
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Felix Fietkau [Sun, 22 Jan 2017 12:50:01 +0000 (13:50 +0100)]
phase1: run package/cleanup before package/compile
This is done by the full make run as well, and it cleans up
STAGING_DIR_ROOT/
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Jo-Philipp Wich [Thu, 19 Jan 2017 02:14:02 +0000 (03:14 +0100)]
phase2: implement tree expiry, use CONFIG_AUTOREMOVE
- Implement option to expire the build tree after it reached its maximum age
- Enable the CONFIG_AUTOREMOVE feature to keep build_dir small
- Do not clobber pre-existing SDK directory when extracting newer SDK
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 10 Jan 2017 18:59:32 +0000 (19:59 +0100)]
phase1, phase2: reduce backlog size
The build logs take up a lot of space and are relatively rarely needed,
so only keep logs for the last 20 builds and general info for the last
30 builds.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Sun, 8 Jan 2017 18:43:11 +0000 (19:43 +0100)]
phase1: support to request specific CC / CXX versions
In order to ensure the portability of the resulting SDK to a broad range of
systems, add support to request specific host compiler versions by overriding
the CC and CXX environment variables.
Also ship a script which aids in locating proper executables.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 4 Jan 2017 12:57:29 +0000 (13:57 +0100)]
phase1, phase2: use --progress for larger rsync uploads
This avoids build step timeouts on slaves with weak connectivity to the
central rsync server.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 4 Jan 2017 12:44:15 +0000 (13:44 +0100)]
phase2: generate feeds.conf artifact with fixed revision urls
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 4 Jan 2017 08:10:45 +0000 (09:10 +0100)]
phase1: add diffconfig step
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Thu, 15 Dec 2016 16:14:32 +0000 (16:14 +0000)]
global: calculate suitable number of jobs
Use the formula (n_cpus / n_builds) + 1 to calculate a suitable value for -j.
Also introduce a new general configuration option "other_builds" which is
added to n_builds. This is needed in cases where multiple build masters run
on the same machine.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 14 Dec 2016 17:28:58 +0000 (18:28 +0100)]
phase1: manually fetch remote Git refs
Buildbot never updates the remote branch reference on incremental updates,
causing scripts/getver.sh to assume a dirty tree with unpublished local
commits.
Add a manual command step to update the remote branch ref in order to bring
the remote tracking branch history in sync with the local branch.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 14 Dec 2016 00:26:08 +0000 (01:26 +0100)]
phase1: run maketag.sh under exclusive lock
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Fri, 2 Dec 2016 21:44:18 +0000 (22:44 +0100)]
phase2: adjust change filter
Instead of hardcoding the master branch, filter incoming changes by the branch
used for the corresponding feed.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Fri, 2 Dec 2016 21:18:47 +0000 (22:18 +0100)]
makebranch.sh: use -SNAPSHOT instead of -CURRENT for untagged branch builds
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Fri, 2 Dec 2016 21:16:20 +0000 (22:16 +0100)]
phase1: use -SNAPSHOT instead of -CURRENT as build designation
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Fri, 2 Dec 2016 14:33:49 +0000 (15:33 +0100)]
maketag.sh: use the output of getver.sh verbatim
Do not append Git commit hashes to the getver.sh reported version but take the
value verbatim. Also change the Git author to "Release Management".
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Fri, 2 Dec 2016 14:32:59 +0000 (15:32 +0100)]
makebranch.sh: use YY.MM-CURRENT designation for branch versions
Also use "Release Management" as Git author.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Fri, 2 Dec 2016 12:30:19 +0000 (13:30 +0100)]
phase1: use YY.MM-CURRENT as branch directory
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Wed, 30 Nov 2016 20:17:46 +0000 (21:17 +0100)]
phase1: don't fail if Git is not yet cloned
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 28 Nov 2016 19:06:26 +0000 (20:06 +0100)]
phase2: add base version suffix to directory for non-master builds
Also support persistent operation where previous build artifacts are not
cleared out.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 28 Nov 2016 19:03:15 +0000 (20:03 +0100)]
phase1: create version directories
For tagged or non-master builds, emit version subdirectories for the binary
artifacts and symlink the shared feed repositories to a common location.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 28 Nov 2016 18:36:18 +0000 (19:36 +0100)]
phase1: support creating tags on demand
If a build is forcibly invoked with a custom tag=x.y.z property, the builder
will prepare and push the appropriate Git repository tag.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 28 Nov 2016 18:35:40 +0000 (19:35 +0100)]
phase1: add helper scripts for creating branches and tags
These scripts will be used to prepare release branches and repository tags.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 28 Nov 2016 18:31:46 +0000 (19:31 +0100)]
phase1: switch away from deprecated slave side Git step
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 28 Nov 2016 18:28:07 +0000 (19:28 +0100)]
phase1: improve Git cloning on the master
Avoid switching branches later and checkout the proper branch right away.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 15 Nov 2016 20:10:48 +0000 (21:10 +0100)]
Remove unsupported logEnviron from master command calls
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 15 Nov 2016 20:02:28 +0000 (21:02 +0100)]
Allow overriding GnuPG home directory
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Tue, 15 Nov 2016 13:28:41 +0000 (14:28 +0100)]
phase1: use a different name for the Git clone work directory
Upon first start, the build master expects a clean directory to issue
git init --bare in, therfore we cannot use the clone used for bootstrapping.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 17:46:34 +0000 (18:46 +0100)]
phase1: move initial .config into external file
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 14:38:21 +0000 (15:38 +0100)]
phase2: remove duplicate branch argument
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 14:36:40 +0000 (15:36 +0100)]
phase2: honour branch references in feeds.conf
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 14:21:47 +0000 (15:21 +0100)]
phase1: fix typo in previous commit
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 14:20:37 +0000 (15:20 +0100)]
phase1: support specifying repository source branch
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 14:17:46 +0000 (15:17 +0100)]
phase1: also honour branch in Git() step
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 14:01:20 +0000 (15:01 +0100)]
phase2: avoid creating nested dl/ symlinks
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 14:00:24 +0000 (15:00 +0100)]
phase1: avoid creating nested dl/ symlinks
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 13:46:02 +0000 (14:46 +0100)]
phase2: make sdk_password setting optional
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 13:35:04 +0000 (14:35 +0100)]
phase1: remove unused cleanup script
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 13:33:52 +0000 (14:33 +0100)]
phase2: pass buildbot url to cleanup.sh
Instead of hardcoding the REST url in the cleanup script, pass the value
derived from the configuration.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 13:18:57 +0000 (14:18 +0100)]
phase2: make SDK URL configurable
Also allow to specify the SDK file name pattern and make the decompression
format agnostic.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 12:48:15 +0000 (13:48 +0100)]
phase2: remove handling of unused repo url setting
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich [Mon, 14 Nov 2016 12:46:07 +0000 (13:46 +0100)]
phase2: make slave port configurable
Signed-off-by: Jo-Philipp Wich <jo@mein.io>