From: "Jose E. Marchesi" <jemarch@gnu.org>
To: "Arsen Arsenović via poke-devel" <poke-devel@gnu.org>
Cc: buildbot@sourceware.org, "Arsen Arsenović" <arsen@aarsen.me>,
positron@gnu.org
Subject: Re: [PATCH builder.git] master.cfg: add GNU poke builder
Date: Sun, 20 Nov 2022 12:48:39 +0100 [thread overview]
Message-ID: <877czpalt4.fsf@gnu.org> (raw)
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")
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:
next prev parent reply other threads:[~2022-11-20 11:45 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-19 23:36 Arsen Arsenović
2022-11-20 11:48 ` Jose E. Marchesi [this message]
2022-11-20 12:21 ` Arsen Arsenović
2022-11-20 13:17 ` Frank Ch. Eigler
2022-11-20 14:43 ` Arsen Arsenović
2022-11-20 15:31 ` Frank Ch. Eigler
2022-11-20 16:05 ` Arsen Arsenović
2022-11-20 14:12 ` Jose E. Marchesi
2022-11-23 0:37 ` Mark Wielaard
2022-11-23 11:53 ` Jose E. Marchesi
2022-11-23 17:44 ` Mark Wielaard
2022-11-23 20:20 ` Mohammad-Reza Nabipoor
2022-11-24 12:11 ` Mark Wielaard
2022-11-28 16:48 ` Frank Ch. Eigler
2022-11-28 19:09 ` Arsen Arsenović
2022-11-28 21:53 ` Frank Ch. Eigler
2022-11-29 11:55 ` Mohammad-Reza Nabipoor
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=877czpalt4.fsf@gnu.org \
--to=jemarch@gnu.org \
--cc=arsen@aarsen.me \
--cc=buildbot@sourceware.org \
--cc=poke-devel@gnu.org \
--cc=positron@gnu.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).