From 65cd2f861528d5ef59f594c7c8372975562abad4 Mon Sep 17 00:00:00 2001 From: Mark Wielaard 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