* gccrust debian stable bootstrap builder (Was: ☝ Buildbot (GNU Toolchain): gccrust - worker cancelled (master))
[not found] ` <CAB2u+n0wzviBhbmtXLj__jJ1KetQEQTOfuLZweTnSnk-LVokLQ@mail.gmail.com>
@ 2022-06-19 0:32 ` Mark Wielaard
0 siblings, 0 replies; only message in thread
From: Mark Wielaard @ 2022-06-19 0:32 UTC (permalink / raw)
To: Philip Herron; +Cc: gcc-rust, buildbot
[-- Attachment #1: Type: text/plain, Size: 906 bytes --]
Hi Philip,
CC buildbot mailinglist - please report any issues with the new
builder there.
On Tue, May 24, 2022 at 10:29:34AM +0100, Philip Herron wrote:
> A full bootstrap once a day might be nice to have actually. I wonder
> how long it will take on this build bot.
It takes ~20 minutes (using 8 vcpus). I made it so that it waits for
10 minutes before doing a bootstrap build. The builder also collapses
any pending builds. So it should do a bootstrap build fairly
regularly, but not for each individual commit. It also only runs on
debian amd64 stable for now.
> Hopefully, the bots don't unionize and go on strike for being overworked :).
No worries, we should get a bigger machine next week where we can use
more vcpus per build. And we should also get a larger arm64 box (the
current gccrs builds on arm64 have been disabled because the little
arm64 board just couldn't keep up).
Cheers,
Mark
[-- Attachment #2: 0001-Add-gccrs-debian-stable-bootstrap-builder.patch --]
[-- Type: text/x-diff, Size: 8098 bytes --]
From 65cd2f861528d5ef59f594c7c8372975562abad4 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Sun, 19 Jun 2022 02:03:18 +0200
Subject: [PATCH 1/2] Add gccrs debian-stable bootstrap builder
Add a new gccrust-bootstrap Scheduler with a treeStableTimer of 10
minutes. Share gccrust steps between a CI gccrust_factory and a new
gccrust_bootstrap_factory. The only difference is the configure step
enable-boostrap and enable-checking=no.
The gccrust-bootstrap-debian-amd64 builder has collapseRequests=True
and gccrust-bootstrap as tag. The gccrust-bootstrap tag problem
reports are sent separately from the CI gccrust builder (gccrust tag)
reports.
---
builder/master.cfg | 116 ++++++++++++++++++++++++++++++++++++++-------
1 file changed, 99 insertions(+), 17 deletions(-)
diff --git a/builder/master.cfg b/builder/master.cfg
index 7e28ea9..dc5c583 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -412,6 +412,17 @@ gccrust_scheduler = schedulers.SingleBranchScheduler(
"gccrust-opensuseleap-x86_64"])
c['schedulers'].append(gccrust_scheduler)
+gccrust_bootstrap_scheduler = schedulers.SingleBranchScheduler(
+ name="gccrust-bootstrap",
+ change_filter=util.ChangeFilter(project="gccrust",
+ branch="master"),
+ fileIsImportant=gccrsImportant,
+ onlyImportant=True,
+ treeStableTimer=10*60,
+ reason="gccrust project master branch gccrs files update",
+ builderNames=["gccrust-bootstrap-debian-amd64"])
+c['schedulers'].append(gccrust_bootstrap_scheduler)
+
# Only trigger scheduler for changes to binutils (or deps)
binutils_files = ["bfd/",
"binutils/", "gas/", "ld/",
@@ -1165,53 +1176,95 @@ elfutils_opensuseleap_x86_64_builder = util.BuilderConfig(
factory=elfutils_factory_distcheck)
c['builders'].append(elfutils_opensuseleap_x86_64_builder)
-# elfutils build steps, factory and builders
+# gccrust build steps, factory and builders
# All steps are custom because of the workdir settings
-gccrust_factory = util.BuildFactory()
-gccrust_factory.addStep(steps.Git(
+gccrust_git_step = steps.Git(
workdir='gccrs',
repourl=gccrust_repourl,
mode='full', method='fresh',
retryFetch=True,
name="git checkout",
- haltOnFailure=True))
-gccrust_factory.addStep(steps.ShellCommand(
+ haltOnFailure=True)
+
+gccrust_rm_build_step = steps.ShellCommand(
command=["rm", "-rf",
util.Interpolate ("%(prop:builddir)s/gccrs-build")],
name="rm -rf gccrs-build",
- haltOnFailure=True))
-gccrust_factory.addStep(steps.Configure(
+ haltOnFailure=True)
+
+gccrust_configure_step = steps.Configure(
workdir='gccrs-build',
command=['../gccrs/configure',
'--disable-bootstrap',
'--enable-languages=rust',
'--enable-checking=yes',
- '--disable-multilib'],
+ '--disable-multilib',
+ '--disable-libsanitizer',
+ '--disable-libitm',
+ '--disable-libgomp',
+ '--disable-libcc1',
+ '--disable-libvtv'],
name='configure',
- haltOnFailure=True))
-gccrust_factory.addStep(steps.Compile(
+ haltOnFailure=True)
+
+gccrust_configure_bootstrap_step = steps.Configure(
+ workdir='gccrs-build',
+ command=['../gccrs/configure',
+ '--enable-bootstrap',
+ '--enable-languages=rust',
+ '--enable-checking=no',
+ '--disable-multilib',
+ '--disable-libsanitizer',
+ '--disable-libitm',
+ '--disable-libgomp',
+ '--disable-libcc1',
+ '--disable-libvtv'],
+ name='configure',
+ haltOnFailure=True)
+
+gccrust_make_step = steps.Compile(
workdir='gccrs-build',
command=['make', util.Interpolate('-j%(prop:ncpus)s')],
name='make',
- haltOnFailure=True))
-gccrust_factory.addStep(steps.Compile(
+ haltOnFailure=True)
+
+gccrust_check_step = steps.Compile(
workdir='gccrs-build',
command=['make', 'check-rust', util.Interpolate('-j%(prop:ncpus)s')],
name='make check',
logfiles={ "rust.sum": "gcc/testsuite/rust/rust.sum",
"rust.log": "gcc/testsuite/rust/rust.log" },
- haltOnFailure=False, flunkOnFailure=True))
+ haltOnFailure=False, flunkOnFailure=True)
+
# needed because make check-rust doesn't fail on unexpected failures
-gccrust_factory.addStep(steps.ShellCommand(
+gccrust_check_check_step = steps.ShellCommand(
workdir='gccrs-build',
command="grep unexpected gcc/testsuite/rust/rust.sum; test $? -eq 1",
name="grep unexpected rust.sum",
- haltOnFailure=False, flunkOnFailure=True))
-gccrust_factory.addSteps(bunsen_logfile_upload_steps([
+ haltOnFailure=False, flunkOnFailure=True)
+
+gccrust_bunsen_steps = bunsen_logfile_upload_steps([
(["../gccrs-build/gcc/testsuite/rust/rust.sum", "../gccrs-build/gcc/testsuite/rust/rust.log"], "gcc/testsuite/rust"),
- (["../gccrs-build/gcc/config.log"], "gcc")]))
+ (["../gccrs-build/gcc/config.log"], "gcc")])
+gccrust_factory = util.BuildFactory()
+gccrust_factory.addStep(gccrust_git_step)
+gccrust_factory.addStep(gccrust_rm_build_step)
+gccrust_factory.addStep(gccrust_configure_step)
+gccrust_factory.addStep(gccrust_make_step)
+gccrust_factory.addStep(gccrust_check_step)
+gccrust_factory.addStep(gccrust_check_check_step)
+gccrust_factory.addSteps(gccrust_bunsen_steps)
+
+gccrust_bootstrap_factory = util.BuildFactory()
+gccrust_factory.addStep(gccrust_git_step)
+gccrust_factory.addStep(gccrust_rm_build_step)
+gccrust_factory.addStep(gccrust_configure_bootstrap_step)
+gccrust_factory.addStep(gccrust_make_step)
+gccrust_factory.addStep(gccrust_check_step)
+gccrust_factory.addStep(gccrust_check_check_step)
+gccrust_factory.addSteps(gccrust_bunsen_steps)
gccrust_fedora_x86_64_builder = util.BuilderConfig(
name="gccrust-fedora-x86_64",
@@ -1276,6 +1329,16 @@ gccrust_opensuseleap_x86_64_builder = util.BuilderConfig(
factory=gccrust_factory)
c['builders'].append(gccrust_opensuseleap_x86_64_builder)
+gccrust_bootstrap_debian_amd64_builder = util.BuilderConfig(
+ name="gccrust-bootstrap-debian-amd64",
+ properties={'container-file':
+ readContainerFile('debian-stable')},
+ workernames=vm_workers,
+ tags=["gccrust-bootstrap", "debian", "x86_64"],
+ collapseRequests=True,
+ factory=gccrust_bootstrap_factory)
+c['builders'].append(gccrust_bootstrap_debian_amd64_builder)
+
# binutils build steps, factory and builders
binutils_step_git = steps.Git(
@@ -2095,6 +2158,25 @@ mn_gccrust_change = reporters.MailNotifier(
generators=[generator_gccrust_change])
c['services'].append(mn_gccrust_change)
+# Problem report for the gccrust bootstrap builder
+generator_gccrust_bootstrap = reporters.BuildSetStatusGenerator(
+ mode=('problem',), tags=['gccrust-bootstrap'])
+mn_gccrust_bootstrap = reporters.MailNotifier(
+ fromaddr="builder@sourceware.org",
+ sendToInterestedUsers=True,
+ generators=[generator_gccrust_bootstrap])
+c['services'].append(mn_gccrust_bootstrap)
+
+# Change report for the gccrust bootstrap builder
+generator_gccrust_bootstrap_change = reporters.BuildSetStatusGenerator(
+ mode=('change',), tags=['gccrust-bootstrap'])
+mn_gccrust_bootstrap_change = reporters.MailNotifier(
+ fromaddr="builder@sourceware.org",
+ sendToInterestedUsers=False,
+ extraRecipients=['gcc-rust@gcc.gnu.org'],
+ generators=[generator_gccrust_bootstrap_change])
+c['services'].append(mn_gccrust_bootstrap_change)
+
# Problem report for the whole binutils tagged builder set
generator_binutils = reporters.BuildSetStatusGenerator(
mode=('problem',), tags=['binutils'])
--
2.30.2
[-- Attachment #3: 0002-htdocs-index.html-Add-gccrust-bootstrap-badge.patch --]
[-- Type: text/x-diff, Size: 933 bytes --]
From 5e589f66776b112fa613bfb775a3c9282af3ca9f Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Sun, 19 Jun 2022 02:30:20 +0200
Subject: [PATCH 2/2] htdocs/index.html: Add gccrust-bootstrap badge
---
htdocs/index.html | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/htdocs/index.html b/htdocs/index.html
index a4df826..dd47dcb 100644
--- a/htdocs/index.html
+++ b/htdocs/index.html
@@ -265,6 +265,11 @@
<td><a href="/buildbot/#builders/gcc-fedrawhide-x86_64">fedrawhide-x86_64<br>
<img src="/buildbot/badges/gcc-fedrawhide-x86_64.svg"></a></td>
</tr>
+ <tr>
+ <td><a href="/buildbot/#/builders?tags=gccrust-bootstrap">gccrust</a></td>
+ <td><a href="/buildbot/#builders/gccrust-bootstrap-debian-amd64">gccrust-bootstrap<br>
+ <img src="/buildbot/badges/gccrust-bootstrap-debian-amd64.svg"></a></td>
+ </tr>
</table>
</p>
<h2>Thanks</h2>
--
2.30.2
^ permalink raw reply [flat|nested] only message in thread