From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gnu.wildebeest.org (gnu.wildebeest.org [45.83.234.184]) by sourceware.org (Postfix) with ESMTPS id 065A23858C1F for ; Sat, 19 Aug 2023 18:46:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 065A23858C1F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org Received: from csb.redhat.com (deer0x03.wildebeest.org [172.31.17.133]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 76C95302BBEC; Sat, 19 Aug 2023 20:46:07 +0200 (CEST) Received: by csb.redhat.com (Postfix, from userid 10916) id 4B1D6DC85A; Sat, 19 Aug 2023 20:46:07 +0200 (CEST) From: Mark Wielaard To: buildbot@sourceware.org Cc: Mark Wielaard Subject: [PATCH] Add glibc snapshots builder Date: Sat, 19 Aug 2023 20:45:59 +0200 Message-Id: <20230819184559.1823533-1-mark@klomp.org> X-Mailer: git-send-email 2.39.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3035.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,JMQ_SPF_NEUTRAL,KAM_DMARC_STATUS,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: First creates a dist, then unpacks that dist and then builds the manual from that. Publishing both the src dists and the manuals. --- builder/master.cfg | 99 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/builder/master.cfg b/builder/master.cfg index 00d5c8c..f4f7aa5 100644 --- a/builder/master.cfg +++ b/builder/master.cfg @@ -1057,6 +1057,17 @@ dwarfspec_snapshot_scheduler = schedulers.Periodic( builderNames=["dwarfspec-snapshots-trunk"]) c['schedulers'].append(dwarfspec_snapshot_scheduler) +glibc_snapshot_scheduler = schedulers.Periodic( + name="glibc-snapshots", + change_filter=util.ChangeFilter(project="glibc", + branch="master"), + branch="master", + periodicBuildTimer=15*60, # 15 minutes in seconds + onlyIfChanged=True, + reason="glibc periodic project master branch snapshot", + builderNames=["glibc-snapshots-trunk"]) +c['schedulers'].append(glibc_snapshot_scheduler) + ####### BUILDERS # The 'builders' list defines the Builders, which tell Buildbot how to perform a build: @@ -4665,6 +4676,94 @@ dwarfspec_snapshots_trunk_builder = util.BuilderConfig( factory=dwarfspec_snapshots_trunk_factory) c['builders'].append(dwarfspec_snapshots_trunk_builder) +glibc_make_dist_step = steps.Compile( + workdir='glibc-build', + command=['make', 'dist'], + name='make dist') +glibc_unpack_dist_step = steps.ShellCommand( + workdir='glibc-build', + command="dirname=$(basename ../glibc/glibc-*.tar.gz .tar.gz) && " + + "tar zxf ../glibc/glibc-*.tar.gz && " + + "mv $dirname glibc-dist && " + + "cd glibc-dist && " + + "mkdir glibc-build && cd glibc-build && " + + "../configure --prefix=/usr", + name='unpack dist') +glibc_make_no_split_html_step = steps.ShellCommand( + workdir='glibc-build/glibc-dist/glibc-build', + command="make MAKEINFO='makeinfo --no-split' html && " + + "mv manual/libc manual/libc.html", + name='make no-split html') +glibc_make_info_step = steps.ShellCommand( + workdir='glibc-build/glibc-dist/glibc-build', + command="make info", + name='make info') +glibc_make_html_step = steps.ShellCommand( + workdir='glibc-build/glibc-dist/glibc-build', + command="make html", + name='make html') +glibc_make_dvi_step = steps.ShellCommand( + workdir='glibc-build/glibc-dist/glibc-build', + command="make dvi", + name='make dvi') +glibc_make_pdf_step = steps.ShellCommand( + workdir='glibc-build/glibc-dist/glibc-build', + command="make pdf", + name='make pdf') +glibc_make_txt_step = steps.ShellCommand( + workdir='glibc-build/glibc-dist/glibc-build/manual', + command="makeinfo --no-split -o libc.txt --plaintext -P ../../manual ../../manual/libc.texinfo", + name='make plain text') +glibc_make_archives_step = steps.ShellCommand( + workdir='glibc-build/glibc-dist/glibc-build/manual', + command="tar czf libc-texi.tar.gz *.texi* -C ../../manual . && " + + "tar czf libc-info.tar.gz libc.info* && " + + "tar czf libc-html_node.tar.gz libc && " + + "gzip libc.dvi && " + + "gzip libc.txt", + name='make archives') + +glibc_create_output_step = steps.ShellCommand( + workdir='glibc-build', + name="create output", + command="mkdir -p /home/builder/shared/output/{src,manual} &&" + + "mv ../glibc/glibc/glibc-*tar* /home/builder/shared/output/src; " + + "mv glibc-dist/glibc-build/manual/libc.html /home/builder/shared/output/manual/; " + + "mv glibc-dist/glibc-build/manual/libc /home/builder/shared/output/manual/html_node; " + + "mv glibc-dist/glibc-build/manual/libc*gz /home/builder/shared/output/manual/") +glibc_create_publish_file_step = steps.ShellCommand( + name="create publish file", + command="echo glibc/trunk > /home/builder/shared/publish") + +# First creates a dist, then unpacks that dist and then builds the +# manual from that. Publishing both the src dists and the manuals. +glibc_snapshots_trunk_factory = util.BuildFactory() +glibc_snapshots_trunk_factory.addStep(glibc_git_step) +glibc_snapshots_trunk_factory.addStep(glibc_rm_step) +glibc_snapshots_trunk_factory.addStep(glibc_configure_step) +glibc_snapshots_trunk_factory.addStep(glibc_make_dist_step) +glibc_snapshots_trunk_factory.addStep(glibc_unpack_dist_step) +glibc_snapshots_trunk_factory.addStep(glibc_make_no_split_html_step) +glibc_snapshots_trunk_factory.addStep(glibc_make_info_step) +glibc_snapshots_trunk_factory.addStep(glibc_make_html_step) +glibc_snapshots_trunk_factory.addStep(glibc_make_dvi_step) +glibc_snapshots_trunk_factory.addStep(glibc_make_pdf_step) +glibc_snapshots_trunk_factory.addStep(glibc_make_txt_step) +glibc_snapshots_trunk_factory.addStep(glibc_make_archives_step) +glibc_snapshots_trunk_factory.addStep(wait_snapshots_output_ready_step) +glibc_snapshots_trunk_factory.addStep(glibc_create_output_step) +glibc_snapshots_trunk_factory.addStep(glibc_create_publish_file_step) + +glibc_snapshots_trunk_builder = util.BuilderConfig( + name="glibc-snapshots-trunk", + collapseRequests=True, + properties={'container-file': + readContainerFile('fedora-latest')}, + workernames="snapshots", + tags=["glibc-snapshots", "trunk"], + factory=glibc_snapshots_trunk_factory) +c['builders'].append(glibc_snapshots_trunk_builder) + ####### BUILDBOT SERVICES # 'services' is a list of BuildbotService items like reporter targets. The -- 2.39.3