From: Mark Wielaard <mark@klomp.org>
To: buildbot@sourceware.org
Cc: Mark Wielaard <mark@klomp.org>
Subject: [PATCH] Add binutils-gdb-autoregen builder
Date: Sun, 12 Nov 2023 17:19:06 +0100 [thread overview]
Message-ID: <20231112161906.1539555-1-mark@klomp.org> (raw)
Generalize the autoregen.py script by searching for 'configure.ac'
instead of 'configure'. Skip "foreign" readline and minizip dirs.
Make autoregen_step and git_diff_step generic, define early.
Add binutils-gdb-autoregen builder to binutils_gdb_scheduler.
---
builder/containers/autoregen.py | 6 ++++-
builder/master.cfg | 47 ++++++++++++++++++++++++---------
2 files changed, 39 insertions(+), 14 deletions(-)
diff --git a/builder/containers/autoregen.py b/builder/containers/autoregen.py
index 4ebf445..9315334 100755
--- a/builder/containers/autoregen.py
+++ b/builder/containers/autoregen.py
@@ -15,11 +15,15 @@ config_folders = []
for root, _, files in os.walk('.'):
for file in files:
- if file == 'configure':
+ if file == 'configure.ac':
config_folders.append(Path(root).resolve())
for folder in sorted(config_folders):
print(folder, flush=True)
+ # readline and minizip are maintained with different autotools versions
+ if (str(folder).endswith('readline')
+ or str(folder).endswith('minizip')):
+ continue;
os.chdir(folder)
configure_lines = open('configure.ac').read().splitlines()
if any(True for line in configure_lines if line.startswith('AC_CONFIG_HEADERS')):
diff --git a/builder/master.cfg b/builder/master.cfg
index 0fef831..51c12b9 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -906,6 +906,7 @@ binutils_gdb_scheduler = schedulers.SingleBranchScheduler(
branch="master"),
reason="binutils-gdb project master branch update",
builderNames=["binutils-gdb-fedrawhide-x86_64",
+ "binutils-gdb-autoregen",
"binutils-gdb-clang-fedrawhide-x86_64",
"binutils-gdb-gentoo-sparc"])
c['schedulers'].append(binutils_gdb_scheduler)
@@ -1182,6 +1183,16 @@ make_distcheck_testsuite_step = steps.Test(
logfiles={"testsuite.log":
util.Interpolate('%(prop:package_name)s-%(prop:package_version)s/_build/sub/tests/testsuite.log')})
+autoregen_step = steps.ShellCommand(
+ command="autoregen.py",
+ name="autoregen.py",
+ haltOnFailure=True)
+
+git_diff_step = steps.ShellCommand(
+ command=['git', 'diff', '--exit-code'],
+ name="git diff",
+ haltOnFailure=True)
+
# Generic make clean step to be run at the end of a build
make_clean_step = steps.ShellCommand(
command=["make", "clean"],
@@ -2470,6 +2481,13 @@ binutils_step_git = steps.Git(
getDescription={'tags':True, 'always':True},
name="git checkout",
haltOnFailure=True)
+binutils_gdb_step_git = steps.Git(
+ repourl=binutils_gdb_repourl,
+ mode='full', method='fresh',
+ retryFetch=True, retry=(30,3),
+ getDescription={'tags':True, 'always':True},
+ name="git checkout",
+ haltOnFailure=True)
binutils_step_rm_build_dir = steps.ShellCommand(
command=["rm", "-rf",
util.Interpolate ("%(prop:builddir)s/binutils-build")],
@@ -2598,6 +2616,11 @@ binutils_factory_gas_binutils.addStep(binutils_step_check_gas_binutils)
binutils_factory_gas_binutils.addSteps(binutils_steps_bunsen_gas_binutils)
binutils_factory_gas_binutils.addStep(binutils_step_rm_build_dir)
+binutils_gdb_autoregen_factory = util.BuildFactory()
+binutils_gdb_autoregen_factory.addStep(binutils_gdb_step_git)
+binutils_gdb_autoregen_factory.addStep(autoregen_step)
+binutils_gdb_autoregen_factory.addStep(git_diff_step)
+
binutils_debian_amd64_builder = util.BuilderConfig(
name="binutils-debian-amd64",
properties={'container-file':
@@ -2799,6 +2822,15 @@ binutils_try_debian_testing_x86_64_builder = util.BuilderConfig(
factory=binutils_factory_libctf)
c['builders'].append(binutils_try_debian_testing_x86_64_builder)
+binutils_gdb_autoregen_builder = util.BuilderConfig(
+ name="binutils-gdb-autoregen",
+ properties={'container-file':
+ readContainerFile('autotools')},
+ workernames=vm_workers,
+ tags=["binutils-gdb-autotools", "debian"],
+ factory=binutils_gdb_autoregen_factory)
+c['builders'].append(binutils_gdb_autoregen_builder)
+
# gdb build steps, factory and builders
gdb_git_step = steps.Git(
@@ -3384,16 +3416,6 @@ gcc_build_make_clean_step = steps.ShellCommand(
command=["make", "clean"],
name="make clean")
-gcc_autoregen_step = steps.ShellCommand(
- command="autoregen.py",
- name="autoregen.py",
- haltOnFailure=True)
-
-gcc_git_diff_step = steps.ShellCommand(
- command=['git', 'diff', '--exit-code'],
- name="git diff",
- haltOnFailure=True)
-
gcc_factory = util.BuildFactory()
gcc_factory.addStep(gcc_git_step)
gcc_factory.addStep(steps.Configure(
@@ -3441,12 +3463,11 @@ gcc_build_factory.addStep(gcc_rm_build_step)
gcc_autoregen_factory = util.BuildFactory()
gcc_autoregen_factory.addStep(gcc_git_step)
-gcc_autoregen_factory.addStep(gcc_autoregen_step)
-gcc_autoregen_factory.addStep(gcc_git_diff_step)
+gcc_autoregen_factory.addStep(autoregen_step)
+gcc_autoregen_factory.addStep(git_diff_step)
gcc_autoregen_builder = util.BuilderConfig(
name="gcc-autoregen",
- collapseRequests=True,
properties={'container-file':
readContainerFile('autotools')},
workernames=vm_workers,
--
2.39.3
next reply other threads:[~2023-11-12 16:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-12 16:19 Mark Wielaard [this message]
2023-11-12 16:49 ` Frank Ch. Eigler
2023-11-12 17:19 ` Mark Wielaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231112161906.1539555-1-mark@klomp.org \
--to=mark@klomp.org \
--cc=buildbot@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).