Petr Štetiar [Sun, 18 Jun 2023 05:19:32 +0000 (07:19 +0200)]
phase1: reformat with black
Making everything consistent, more readable, CI guarded.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Thu, 1 Jun 2023 05:56:49 +0000 (07:56 +0200)]
phase1: dlprune: fix cannot delete ‘dl/’: Not a directory
dlprune currently fails with following error:
find: cannot delete ‘dl/’: Not a directory
Initial idea was to delete only stuff under download directory and not
the download directory itself, so lets adjust the find command
accordingly.
Fixes: 68b20ed67b5e ("phase1: prune unused files from dl/")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Thibaut VARÈNE [Tue, 23 May 2023 18:12:09 +0000 (20:12 +0200)]
phase1: satisfy getver.sh requirements
scripts/getver.sh requires upstream branch tracking to correctly compute
revision number. Buildbot Git() step does not set branch tracking as it
checks out individual commits and then reset the target branch to it, so
in order for getver.sh to work, this workaround forcefully sets the
upstream branch.
This fixes malformed version code in filenames as observed on
openwrt-23.05:
r23001+3-
38c150612c
instead of:
r23004-
7f0db09513
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 22 May 2023 18:20:12 +0000 (20:20 +0200)]
phase1: cleanup redundant steps
These 3 rm steps are unnecessary since these folders are already cleaned
by the Git() step. Thus reduce clutter in already pretty busy Factory.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Petr Štetiar [Tue, 16 May 2023 18:41:05 +0000 (20:41 +0200)]
phase1: workaround gitverify 1st build failures on fresh workers
Currently every 1st build on ephemeral build worker results in the
failure of the `gitverify` build step as the stock buildbot Git() build
step for some reasons just clones the Git repository into detached HEAD
state.
On the 2nd build using the same build worker Git() checkouts the branch
and thus makes `gitverify` step happy and the builds then continues
normally.
This needs to be fixed properly, either by adjusting the `gitverify`
check or adding suitable `mode` into Git() build step, but this needs
more time and testing.
So for now, lets simply workaround that issue by running Git() step two
times.
References: #5
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Alois Klink [Wed, 23 Nov 2022 17:23:48 +0000 (17:23 +0000)]
docker,worker: install g++-multilib
From [openwrt/docker@
5484951][1] (GitHub PR [#89][2]):
Node fails to cross-compile from a 64-bit build machine to 32-bit host
with the following error:
```
In file included from /usr/include/c++/8/memory:62,
from ../deps/v8/src/libplatform/default-foreground-task-runner.h:8,
from ../deps/v8/src/libplatform/default-foreground-task-runner.cc:5:
/usr/include/c++/8/bits/stl_algobase.h:59:10: fatal error: bits/c++config.h:
No such file or directory
#include <bits/c++config.h>
^~~~~~~~~~~~~~~~~~
compilation terminated.
```
On Debian, `g++-multilib` can be installed to fix this.
[1]: https://gitlab.com/openwrt/docker/-/commit/
54849510d7802028b94757051cca6d004a9ca1d1
[2]: https://github.com/openwrt/docker/pull/89
Fixes: https://github.com/openwrt/packages/issues/18476
Fixes: https://forum.openwrt.org/t/why-arent-the-node-and-node-npm-packages-available-on-arm-cortex-a9-vfpv3-d16-in-22-03-2/142722
Signed-off-by: Alois Klink <alois@aloisklink.com>
Petr Štetiar [Tue, 16 May 2023 10:57:56 +0000 (12:57 +0200)]
ci: add basic config checking with ruff
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Thibaut VARÈNE [Mon, 15 May 2023 20:08:50 +0000 (22:08 +0200)]
phase1: actually make rsync -4 configurable
54e80d5ce introduced an interpolate bug that would evaluate an empty
string as being part of the arguments passed to rsync, resulting in a
failure as rsync interprets that empty string as a source.
This commit fixes this by instead appending '4' to regular shortopts
when necessary.
Fixes: 54e80d5ce
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Thibaut VARÈNE [Tue, 16 May 2023 08:13:11 +0000 (10:13 +0200)]
phase1: perform kmodupload only when needed
Fixes: 909e899
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Mon, 15 May 2023 14:18:16 +0000 (16:18 +0200)]
phase1: fix crash on exception during Git update
Fixes following exception:
2023-05-15 14:08:56+0000 [-] <Build master_apm821xx/nand number:1 results:success> build got exception when running step Git(name='git', repourl='https://git.openwrt.org/openwrt/openwrt.git', mode='full', method='fresh', locks=renderer(<function NetLockDl at 0x7f5d33351ee0>), haltOnFailure=True)
2023-05-15 14:08:56+0000 [-] Unhandled Error
Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/twisted/internet/defer.py", line 1792, in gotResult
_inlineCallbacks(r, gen, status, context)
File "/usr/local/lib/python3.9/dist-packages/twisted/internet/defer.py", line 1693, in _inlineCallbacks
result = context.run(
File "/usr/local/lib/python3.9/dist-packages/twisted/python/failure.py", line 518, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/lib/python3.9/dist-packages/buildbot/process/build.py", line 576, in _start_next_step_impl
log.err(e)
--- <exception caught here> ---
File "/usr/local/lib/python3.9/dist-packages/buildbot/process/build.py", line 562, in _start_next_step_impl
results = yield step.startStep(self.conn)
builtins.KeyError: None
as None is valid property value, but cant be used as dict index.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Mon, 15 May 2023 07:25:07 +0000 (09:25 +0200)]
ci: allow pushing of containers during pull requests
Make it possible to push containers in pull requests in private forks,
so the container can be actually runtime tested before merging the
changes.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Mon, 15 May 2023 07:14:48 +0000 (09:14 +0200)]
buildworker,buildmaster: bump Debian to version 11
Debian 10 LTS support ends on 6/2024, so it makes no sense to use it as
a base for 23.05 release, so lets switch to Debian 11 which should've
LTS support till 6/2026.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Mon, 15 May 2023 07:12:16 +0000 (09:12 +0200)]
Bump buildbot version to latest stable release 3.8.0
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Mon, 15 May 2023 06:53:58 +0000 (08:53 +0200)]
buildmaster: fix unpinned buildbot package version
It seems, that current pip3 install pinning doesnt work properly as it
can result in the following package versions installation:
buildbot-3.6.1 buildbot-console-view-3.5.0 buildbot-grid-view-3.5.0
buildbot-waterfall-view-3.5.0 buildbot-worker-3.5.0 buildbot-www-3.5.0
So lets pin the buildbot package itself to BUILDBOT_VERSION as well.
References: https://gitlab.com/openwrt/buildbot/-/jobs/
3324049571#L1158
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Thibaut VARÈNE [Tue, 15 Nov 2022 09:44:56 +0000 (10:44 +0100)]
phase1: make 'rsync -4' worker-configurable
We set '-4' in rsync_defopts, asking rsync to "prefer" ipv4 whenever
possible on _all_ workers. This was historically done because some
workers had flaky ipv6 connectivity, however in the future the reverse
may be true, with worker having worse networking over ipv4 than ipv6.
This change introduces an 'rsync_ipv4' worker configuration option:
when set to a true value, the old rsync behavior (adding '-4') is used,
when unset or set to false, the extra rsync argument is not used.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 28 Oct 2022 09:05:21 +0000 (11:05 +0200)]
phase1: call host ccache in stats
We do not use the staging_dir ccache on buildbots (config seed contains
CONFIG_CCACHE=n), only the host tool if present.
Also only execute this step if 'ccache_command' is set.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 27 Oct 2022 20:35:09 +0000 (22:35 +0200)]
phase1: tag builders with their intended branch name
This helps sorting them in waterfall and builders views.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 27 Oct 2022 18:31:19 +0000 (20:31 +0200)]
phase1: documentation update
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 27 Oct 2022 12:56:21 +0000 (14:56 +0200)]
phase1: allow restricting builders to tag builds only
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 27 Oct 2022 12:32:30 +0000 (14:32 +0200)]
phase1: refactor worker parsing
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 27 Oct 2022 12:11:13 +0000 (14:11 +0200)]
phase1: disable debug messages
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 27 Oct 2022 11:27:56 +0000 (13:27 +0200)]
phase1: prioritize builders by branch order
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 27 Oct 2022 11:09:17 +0000 (13:09 +0200)]
phase1: switch to separate builders per branch per target
This will simplify reporting and ensure consistent build statistics.
It will also simplify prioritizing builders by branch.
This also introduces a single "trigger" scheduler that will handle all
trigger requests for each branch/target combination, speeding up the
forcing of builds.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 27 Oct 2022 08:20:39 +0000 (10:20 +0200)]
phase1: fix ForceBuild validation logic
We shouldn't use the local GitPoller repo to find the commit hash of a
tag, since this repo may not yet have been updated at the time the new
tag value is fetched from the remote repo.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 26 Oct 2022 20:53:12 +0000 (22:53 +0200)]
phase1: run ForceBuilder on local worker
There is no reason to send this over the network to some remote worker,
incurring latency for a purely housekeeping task that should be done on
the buildmaster host.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 26 Oct 2022 19:35:18 +0000 (21:35 +0200)]
phase1: prune unused files from dl/
Remove files that haven't been accessed in >15 days from dl/
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 26 Oct 2022 19:34:19 +0000 (21:34 +0200)]
phase1: workers are running a single build
Worker lock on dl/ is now unnecessary
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 26 Oct 2022 18:51:20 +0000 (20:51 +0200)]
phase1: Fix the force scheduler process
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 26 Oct 2022 17:30:25 +0000 (19:30 +0200)]
phase1: always front-run the 00_force_build builder
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 26 Oct 2022 12:43:15 +0000 (14:43 +0200)]
phase1: fix ForceScheduler
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 26 Oct 2022 07:46:22 +0000 (09:46 +0200)]
phase1: don't log env on statistics steps
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Tue, 25 Oct 2022 20:09:55 +0000 (22:09 +0200)]
phase1: consistent step styling
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Tue, 25 Oct 2022 19:58:53 +0000 (21:58 +0200)]
phase1: gitcheckout workaround is no longer needed
And it has adverse effects (slows/breaks Git step).
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Tue, 25 Oct 2022 18:41:21 +0000 (20:41 +0200)]
phase1: move shared dl to same folder as shared-workdir
The previous command moved it to $HOME/dl, which could pollute the user's
home folder during test runs. This brings the "shared dl" folder in line
with the shared workdir folder, all within buildbot folder hierarchy.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Tue, 25 Oct 2022 17:48:46 +0000 (19:48 +0200)]
phase1: perform rsync steps only if configured
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Tue, 25 Oct 2022 17:25:39 +0000 (19:25 +0200)]
phase1: adjust steps descriptions
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Tue, 25 Oct 2022 13:41:06 +0000 (15:41 +0200)]
phase1: hide/skip ccache steps if not available
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Tue, 25 Oct 2022 11:08:50 +0000 (13:08 +0200)]
phase1: FlattenList doesn't work on renderables
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 16:17:46 +0000 (18:17 +0200)]
phase1: update config.ini.example
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 16:03:26 +0000 (18:03 +0200)]
phase1: populateConfig(): quiet git clone
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 15:09:43 +0000 (17:09 +0200)]
phase1: make scheduler and changesource branch-aware
The ForcedScheduler for tags still needs work
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 14:56:45 +0000 (16:56 +0200)]
phase1: branch-aware signall.sh
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 14:56:37 +0000 (16:56 +0200)]
scripts/signall.sh: make branch aware
This commit is a NO-OP if signall.sh is called with a single argument,
as is currently done, and will allow fetching branch-specific signing
credentials if a branch name is passed as second argument.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 14:41:00 +0000 (16:41 +0200)]
phase1: abort early if current builder does not apply
Some builders (target/subtarget) may only apply to particular branches,
but are nevertheless defined for all branches. Detect such case early,
stop the build but do not mark it FAILURE.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 14:17:03 +0000 (16:17 +0200)]
phase1: make populateTargets() branch aware
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 14:03:38 +0000 (16:03 +0200)]
phase1: make GetNextBuild() branch aware
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 16:08:23 +0000 (18:08 +0200)]
phase1: use single var for rsync_bin_defopts and rsync_src_defopts
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 12:41:28 +0000 (14:41 +0200)]
phase1: use branch config in factory
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Mon, 24 Oct 2022 10:48:11 +0000 (12:48 +0200)]
phase1: rsync_src_url is always set
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 21 Oct 2022 16:54:10 +0000 (18:54 +0200)]
phase1: prepare to parse branches
This commit breaks config
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 21 Oct 2022 16:38:58 +0000 (18:38 +0200)]
phase1: Git() no need to specify branch
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 21 Oct 2022 16:25:03 +0000 (18:25 +0200)]
phase1: replace 'repo_branch' with 'branch' prop in factory
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 21 Oct 2022 09:16:42 +0000 (11:16 +0200)]
phase1: refactor populateTargets()
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 17:41:57 +0000 (19:41 +0200)]
phase1: move target enumeration to function
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 17:24:56 +0000 (19:24 +0200)]
phase1: reorder/regroup globals
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 14:06:54 +0000 (16:06 +0200)]
phase1: fix option parsing typo for 'ul_lock'
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 13:51:38 +0000 (15:51 +0200)]
phase1: remove 'cleanup' worker option (always set)
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 13:49:43 +0000 (15:49 +0200)]
phase1: remove 'shared_wd' worker option (always set)
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 13:48:04 +0000 (15:48 +0200)]
phase1: remove dead code due to shared_wd=1
shared_wd is always set, the conditional on these bits were thus always
the same resulting in dead code.
Remove 'expire' config option which is no longer needed.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 18:16:10 +0000 (20:16 +0200)]
phase1: remove now redundant 'njobs' (== 'nprocs') property
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 13:43:15 +0000 (15:43 +0200)]
phase1: max_builds and shared_wd are always set to 1
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 13:30:45 +0000 (15:30 +0200)]
phase1: rework GetNumJobs()
Ensure we never end up with "0".
Set a build property step with the computed concurrency level, so that
this information is available in build status.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 11:18:25 +0000 (13:18 +0200)]
phase1: remove GetCCache()
ccache_command is set from "which ccache" which is either empty or
contains "ccache". Use a simple interpolation instead.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 11:11:26 +0000 (13:11 +0200)]
phase1: remove unused IsNoTaggingRequested()
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 10:47:05 +0000 (12:47 +0200)]
phase1: deduplicate 'git' step
method renderers are supported now.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 10:34:48 +0000 (12:34 +0200)]
phase1: remove dead step CleanTargetMap
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 09:37:21 +0000 (11:37 +0200)]
phase1: remove GetCC()/GetCXX()
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Thu, 20 Oct 2022 09:33:10 +0000 (11:33 +0200)]
phase1: remove GetCwd()
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 19 Oct 2022 18:02:51 +0000 (20:02 +0200)]
phase1: buildfactory: remove deadcode
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 19 Oct 2022 17:57:18 +0000 (19:57 +0200)]
phase1: remove checkBuiltin deadcode
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 19 Oct 2022 17:53:54 +0000 (19:53 +0200)]
phase1: remove unused variables
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 19 Oct 2022 17:13:43 +0000 (19:13 +0200)]
phase1: cleanup ini accessors
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 19 Oct 2022 15:39:57 +0000 (17:39 +0200)]
phase1: fix leading whitespace
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 19 Oct 2022 15:35:32 +0000 (17:35 +0200)]
phase1: remove unused 'kmod_repository'
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 19 Oct 2022 14:35:44 +0000 (16:35 +0200)]
phase1: remove unused 'git_ssh'
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 19 Oct 2022 14:24:46 +0000 (16:24 +0200)]
phase1: remove unused 'cc_version'
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Wed, 19 Oct 2022 14:19:42 +0000 (16:19 +0200)]
phase1: remove unused 'other_builds'
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Tue, 6 Sep 2022 15:19:37 +0000 (17:19 +0200)]
Revert "phase1: remove renderable locks: not supported in 0.8.9"
This commit re-enables the network locks that were first introduced in
in
0edb49341 ("phase1: provide upload/download locking"), but which were
disabled in
1e1a32607 as they weren't supported by the buildbot version
used at the time.
The use and benefits of this system is described in
0edb49341.
This reverts commit
1e1a326074018542c4a6f14ffe12984fa9c8a192.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Petr Štetiar [Mon, 15 May 2023 06:08:42 +0000 (08:08 +0200)]
Create README.md
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Sun, 14 May 2023 19:44:53 +0000 (21:44 +0200)]
ci: disable container pushing during pull request builds
Seems like we need to find a different workflow for container
pre-testing.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Sun, 14 May 2023 18:40:08 +0000 (20:40 +0200)]
ci: fix ghcr.io container pushing
Attempt to fix following:
#11 ERROR: denied: permission_denied: The requested installation does not exist.
------
> pushing ghcr.io/ynezz/buildworker-v3.5.0:master with docker:
------
ERROR: denied: permission_denied: The requested installation does not exist.
Error: buildx failed with: ERROR: denied: permission_denied: The requested installation does not exist.
References: https://github.com/openwrt/buildbot/actions/runs/
4971701948/jobs/
8899889081#step:9:191
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Sun, 14 May 2023 07:12:44 +0000 (09:12 +0200)]
Introduce GitHub actions
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Sat, 26 Mar 2022 09:18:10 +0000 (10:18 +0100)]
phase2: fix just another byte/string inconsistencies
File "/phase2/master.cfg", line 203, in parse_feed_entry
if parts[0].startswith("src-git"):
builtins.TypeError: startswith first arg must be bytes or a tuple of bytes, not str
Fixes: f3fcdbec877e ("phase2: fix obsolete assumption about feed methods")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Fri, 25 Mar 2022 21:38:54 +0000 (22:38 +0100)]
Bump to latest Buildbot release 3.5.0
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Wed, 23 Feb 2022 17:46:41 +0000 (18:46 +0100)]
phase2: handle missing change sources
In commit
f3fcdbec877e ("phase2: fix obsolete assumption about feed
methods") we've fixed stuck buildmaster for master/phase2 builds, but
the issue wasn't obvious at first sight and some digging was necessary.
So lets make it obvious if/when it happens next time.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Wed, 23 Feb 2022 17:23:43 +0000 (18:23 +0100)]
phase2: fix obsolete assumption about feed methods
In commit
7fae1e5677e9 ("feeds: use git-src-full to allow Git
versioning") there was `src-git` method of shallow clone replaced with
`src-git-full` and this has caused issue with GitPoller configuration as
it only assumed, that only `src-git` method is going to be used for feed
updates. Fix currently stuck buildbot master by allowing usage of both
Git update methods.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Wed, 23 Feb 2022 17:22:41 +0000 (18:22 +0100)]
Bump to latest Buildbot release 3.4.1
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Sat, 22 Jan 2022 10:50:11 +0000 (11:50 +0100)]
Bump to latest Buildbot release 3.4.0
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Wed, 3 Nov 2021 13:59:26 +0000 (14:59 +0100)]
ci: docker: deploy automatically only on default branch and tags
In commit
fecd899e8189 ("docker: deploy only manually and on
master/tags") we've introduced manual deployment of the Docker images,
but this is unneeded additional manual step, so rather prefer automatic
deployment. While at it, convert to usage of `rules:` as `only:` is
deprecated and `rules:` are preferred.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Paul Spooren [Fri, 3 Sep 2021 18:39:47 +0000 (08:39 -1000)]
docker: install `mkisofs` to worker container
x86 targets allow the creation of ISO images, however this is not
possible because the `mkisofs` is missing. Install it.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Paul Spooren [Fri, 3 Sep 2021 18:35:55 +0000 (08:35 -1000)]
docker: sort installed packages alphabetically
Signed-off-by: Paul Spooren <mail@aparcar.org>
Paul Spooren [Sun, 5 Sep 2021 01:51:07 +0000 (15:51 -1000)]
docker: deploy only manually and on master/tags
Unmerged branches shouldn't be deployed as "latest" image, only tags and
`master` branches should.
It is still possible to use containers from tested branches since they
are uploaded to the container registry using their *commit slug*.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Petr Štetiar [Wed, 21 Jul 2021 19:31:28 +0000 (21:31 +0200)]
phase1,phase2: improve round robin builds
There seems to be some issue with database updates, where database
updates are asynchronous and thus the status update of the previous
build (complete_at DB column) might take little bit longer, then
preparation of the next/current build.
This is issue during job prioritization as this might result in the
build of the same builder twice in a row, for example:
2021-06-22 02:42:54+0000 [-] <Build mipsel_24kc number:95 results:success>: build finished
2021-06-22 02:42:55+0000 [-] prioritizeBuilders: mipsel_24kc complete_at: 2021-06-21 20:17:14+00:00
2021-06-22 03:14:30+0000 [-] prioritizeBuilders: mipsel_24kc complete_at: 2021-06-22 02:42:54+00:00
Build finishes at 02:42:54, scheduler then asks for next build at
02:42:55, but the build still has the old complete_at timestamp
2021-06-21 20:17:14 instead of the correct one 2021-06-22 02:42:54, thus
scheduling the build of oldest mipsel_24kc builder one more time.
This is so far very promising workaround attempt which checks latest
builder complete_at in builds table which seems to be updated faster,
thus using greater complete_at value seems to work for now.
References: https://github.com/buildbot/buildbot/issues/4592#issuecomment-
801163587
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Mon, 28 Jun 2021 06:39:14 +0000 (08:39 +0200)]
Bump to latest Buildbot release 3.2.0
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Tony Ambardar [Fri, 26 Mar 2021 09:55:41 +0000 (09:55 +0000)]
docker,worker: install libelf-dev, libdw-dev
The libelf-dev is a previous requirement to support STACK_VALIDATION
during kernel builds (x86/64). Building kernels with BTF debug
information requires both this and libdw-dev be installed.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Petr Štetiar [Thu, 25 Mar 2021 10:21:04 +0000 (11:21 +0100)]
buildworker: provide OpenWrt version in description
So it's clear to anyone which version is actually deployed.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Thu, 25 Mar 2021 10:03:30 +0000 (11:03 +0100)]
buildmaster: provide OpenWrt version in About section
So it's clear to anyone which version is actually deployed.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Thu, 25 Mar 2021 08:54:49 +0000 (09:54 +0100)]
phase1,phase2: add file space usage reporting
Add `du` step so it's clear how much space was used by the build.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Baptiste Jonglez [Wed, 24 Mar 2021 22:28:25 +0000 (23:28 +0100)]
phase1, phase2: exclude temporary source files from sourceupload step
When the dl/ directory is shared with several workers, there can be
temporary "*.hash" and "*.dl" files being created by other workers.
These files should be excluded from the sourceupload step, otherwise it
can cause a failure when rsync tries to read them.
See for example:
https://buildbot.openwrt.org/master/packages/#/builders/14/builds/18/steps/39/logs/stdio
Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
Baptiste Jonglez [Wed, 24 Mar 2021 22:48:13 +0000 (23:48 +0100)]
phase1, phase2: don't mark the build failed if a non-critical step fails
Some steps are informative or optional (haltOnFailure=False), so it makes
no sense to mark the whole build as failed if such a step fails.
Depending on the case, we either mark the build as "warning"
(warnOnFailure=True) or as successful (warnOnFailure=False).
Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>