public inbox for buildbot@sourceware.org
 help / color / mirror / Atom feed
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:

  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).