From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 29C4F395B823 for ; Sun, 20 Nov 2022 11:45:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 29C4F395B823 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gnu.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gnu.org Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1owilE-0007xJ-AR; Sun, 20 Nov 2022 06:45:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=D4rV6pTsQr1vS6gfyMfVK0zgo4Wa12ImlY5Foe7iF2w=; b=WBsxDkcfiaFqs1Pp1c8g FyO/ZN2yPZ9lxpjEUgLa4lfy+Ws8D2iR5/vqYYJVfXIlKZWdwYMSpWu3i5nCDTq3z9X2cAumyGnAZ i4Kf2PBJAo44L+TE4lK2aaMzWrPcGiIpZuswAPM2sAJ8g5pHCBYXaxeNPN8RSs0w9RUyFsFS+tZwB B9f/fyOBW0//1Z6WdhDOBHA5Equ12g0WyJ0i/O3izFaJdj+t0dd4sOlrLGUea0B2akMJDCZ7UyEEc WJ3b+a/IOsMZjn4qvsSrWh0v8A9gseKvD7FvkiNL6pLmF23RAowWS9Yxmm5KzjVqF+a8YA3WHgAsm XC+tsVeyy1JPGQ==; Received: from dynamic-077-180-073-118.77.180.pool.telefonica.de ([77.180.73.118] helo=termi.gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1owil5-0003pZ-Va; Sun, 20 Nov 2022 06:45:19 -0500 From: "Jose E. Marchesi" To: Arsen =?utf-8?Q?Arsenovi=C4=87?= via poke-devel Cc: buildbot@sourceware.org, Arsen =?utf-8?Q?Arsenovi=C4=87?= , positron@gnu.org Subject: Re: [PATCH builder.git] master.cfg: add GNU poke builder References: <20221119233644.911898-1-arsen@aarsen.me> Date: Sun, 20 Nov 2022 12:48:39 +0100 In-Reply-To: <20221119233644.911898-1-arsen@aarsen.me> ("Arsen =?utf-8?Q?A?= =?utf-8?Q?rsenovi=C4=87?= via poke-devel"'s message of "Sun, 20 Nov 2022 00:36:45 +0100") Message-ID: <877czpalt4.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-8.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_BARRACUDACENTRAL,SPF_HELO_PASS,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: Hi Arsen. Thank you so much for working on this. > --- > Evening, > > This patch (when finished ;) will add a GNU poke builder to the Sourceware > buildbot. > > There's a few things to consider before merging this (CC'd poke-devel@ for the > discussion): > - What distros and CPUs do we want to test on? > > I think at least s390x in conjunction with x86_64 would be useful, to provide > a reference for big endian machines, to detect if we're accidentally relying > on endianness. > > It would probably be useful to test on Debian stable+testing and Fedora > latest+rawhide, just to make sure we work in both in the past and in the > future; though, it's probably less significant than CPU choices. > > I only left debian-testing in in the current revision of the patch, which has > UNSUPPORTED tests due to libtextstyle. Regarding CPUs, Jitter is quite sensible to them when run in non-threaded mode, so it is a good thing to test on them in order to detect issues before releases. For example, we had several problems with (if I remember properly) arm 32-bit and some other arch with poke 2.0. Mohammad and Luca may have particular suggestions.. > - Which check do we run? > > I initially tried running distcheck, but automake would delete the resulting > test run AFAICT. I'm not entirely sure how to work around that yet (and the > night is catching up with me at this point). As a result, I switched to just > check. Would distcheck even benefit us on CI? My current thinking is "maybe > not", and it does result in compiling poke twice, FWIW. As discussed in IRC, this is the script that Bruno uses in the gitlab CI. I think replicating it may be good: https://gitlab.com/gnu-poke/ci-distcheck > > ... and, of course, the rest of the patch is up for discussion ;) FWIW it looks good to me. We are gonna need some documenation for this in etc/hacking.org regarding this though :) Thanks again! > > Thank you in advance, and have a wonderful night! > > README | 2 +- > .../containers/Containerfile-debian-testing | 1 + > builder/master.cfg | 65 ++++++++++++++++++- > 3 files changed, 66 insertions(+), 2 deletions(-) > > diff --git a/README b/README > index d2b04cb..2f42d2d 100644 > --- a/README > +++ b/README > @@ -12,7 +12,7 @@ htdocs: document root of https://builder.sourceware.org/ > - Define a repourl to be used in the GitPoller and any Build Steps > project_repourl = 'git://sourceware.org/git/project.git' > > - - If the repourl is "new" (not sourceware, gcc or wildebeest) > + - If the repourl is "new" (not sourceware, gcc, savannah, or wildebeest) > then add a revlink matches (at the end of master.cfg) so > changesets get an URL to the actual commit. > > diff --git a/builder/containers/Containerfile-debian-testing b/builder/containers/Containerfile-debian-testing > index 31a62cb..793cbe8 100644 > --- a/builder/containers/Containerfile-debian-testing > +++ b/builder/containers/Containerfile-debian-testing > @@ -18,6 +18,7 @@ RUN apt-get update && \ > libxml2-dev dos2unix python3-dev python3-mock \ > python3-rpm python3-xdg mime-support libopenmpi-dev gdb help2man wget libxxhash-dev \ > libjson-c-dev jq socat \ > + libgc-dev libreadline-dev libnbd-dev \ > buildbot-worker && \ > apt-get clean > > diff --git a/builder/master.cfg b/builder/master.cfg > index 2bc46ef..48ffbf0 100644 > --- a/builder/master.cfg > +++ b/builder/master.cfg > @@ -426,6 +426,13 @@ glibc_gitpoller = changes.GitPoller(repourl=glibc_repourl, > project='glibc') > c['change_source'].append(glibc_gitpoller) > > +gnupoke_repourl='https://git.savannah.gnu.org/git/poke.git' > +gnupoke_gitpoller = changes.GitPoller(repourl=gnupoke_repourl, > + branches=['master'], > + pollInterval=3*60, > + pollRandomDelayMax=2*60, > + project='gnupoke') > +c['change_source'].append(gnupoke_gitpoller) > > > > @@ -868,6 +875,12 @@ glibc_build_scheduler = schedulers.SingleBranchScheduler( > "glibc-opensuseleap-x86_64"]) > c['schedulers'].append(glibc_build_scheduler) > > +gnupoke_scheduler = schedulers.SingleBranchScheduler( > + name="gnupoke", > + change_filter=util.ChangeFilter(project="gnupoke", > + branch="master"), > + builderNames=["gnupoke-debian-testing-x86_64"]) > +c['schedulers'].append(gnupoke_scheduler) > > ####### BUILDERS > > @@ -911,6 +924,9 @@ sourceware_reconfig_builder = util.BuilderConfig( > c['builders'].append(sourceware_reconfig_builder) > > # Some common build steps > +bootstrap_step = steps.ShellCommand( > + command=["./bootstrap"], > + name="bootstrap", haltOnFailure=True) > autoreconf_step = steps.ShellCommand( > command=["autoreconf", "-f", "-i"], > name="autoreconf", haltOnFailure=True) > @@ -3739,6 +3755,31 @@ systemtap_fedrawhide_x86_64_builder = util.BuilderConfig( > factory=systemtap_factory) > c['builders'].append(systemtap_fedrawhide_x86_64_builder) > > +# GNU poke builders and factories > +gnupoke_factory = util.BuildFactory() > +gnupoke_factory.addStep(steps.Git( > + repourl=gnupoke_repourl, > + mode='full', method='fresh', > + name="git checkout", > + haltOnFailure=True)) > +gnupoke_factory.addStep(bootstrap_step) > +gnupoke_factory.addStep(configure_step) > +gnupoke_factory.addStep(make_step) > +gnupoke_factory.addStep(make_distcheck_step) > +gnupoke_factory.addSteps(bunsen_logfile_upload_steps([ > + (["./testsuite/poke.log"], "testsuite"), > + (["config.log"], "."), > + (["./jitter/config.log"], "jitter") > +])) > + > +gnupoke_debiantesting_x86_64_builder = util.BuilderConfig( > + name="gnupoke-debian-testing-x86_64", > + tags=["gnupoke", "debian-testing", "x86_64"], > + properties={'container-file': > + readContainerFile('debian-testing')}, > + workernames=vm_workers, > + factory=gnupoke_factory) > +c['builders'].append(gnupoke_debiantesting_x86_64_builder) > > ####### BUILDBOT SERVICES > > @@ -4000,6 +4041,25 @@ mn_valgrind_change = reporters.MailNotifier( > generators=[generator_valgrind_change]) > c['services'].append(mn_valgrind_change) > > +# Change reporter for GNU poke. > +generator_gnupoke = reporters.BuildSetStatusGenerator( > + mode=('change',), tags=['gnupoke']) > +mn_gnupoke = reporters.MailNotifier( > + fromaddr="builder@sourceware.org", > + sendToInterestedUsers=False, > + extraRecipients=['poke-devel@gnu.org'], > + generators=[generator_gnupoke]) > +c['services'].append(mn_gnupoke) > + > +# Problem reporter for GNU poke. > +generator_gnupoke_problem = reporters.BuildSetStatusGenerator( > + mode=('problem',), tags=['gnupoke']) > +mn_gnupoke_problem = reporters.MailNotifier( > + fromaddr="builder@sourceware.org", > + sendToInterestedUsers=True, > + generators=[generator_gnupoke_problem]) > +c['services'].append(mn_gnupoke_problem) > + > > ####### PROJECT IDENTITY > > @@ -4071,8 +4131,11 @@ wildebeestRevLink = util.RevlinkMatch( > repo_urls=[r'git://code.wildebeest.org/(.*).git', > r'https://code.wildebeest.org/git/(.*)'], > revlink=r'https://code.wildebeest.org/git/\1/commit/?id=%s') > +savannahRevLink = util.RevlinkMatch( > + repo_urls=[r'https://git.savannah.gnu.org/git/(.*).git'], > + revlink=r'https://git.savannah.gnu.org/cgit/\1.git/commit/?id=%s') > > -reflinks = [sourcewareRevLink, gccRevLink, wildebeestRevLink] > +reflinks = [sourcewareRevLink, gccRevLink, wildebeestRevLink, savannahRevLink] > > def revlinkmultiplexer(rev,repo): > for revlink in reflinks: