Re: value of gdbadmin effort to create gdb daily/weekly source tarballs

Mark Wielaard
2024-05-24T23:18:02Z

[-- Attachment #1: Type: text/plain, Size: 1329 bytes --]

Hi Joel,

On Mon, Apr 15, 2024 at 11:26:21AM -0700, Joel Brobecker wrote:
> > Other projects like glibc, valgrind, libabigail, etc. have moved their
> > snapshots builds to http://snapshots.sourceware.org/ which creates a
>
> https?

Yes, sorry. http will always redirect to the https site.

> > snapshot build and creates documentation from current git. This makes
> > sure the release processes/scripts keep working. And it has caught
> > release issues early (which often don't occur during a normal
> > developer build). Since this is part of the normal
> > builder.sourceware.org infrastructure it also provides better
> > visibility.
>
> FWIW, that would definitely work for me. I do not have the time
> to work on that, though :-(.

I added snapshots for trunk based on the binutils snapshots using
src-release.sh. Which is what ss/make-snapshot ultimately calls.

The snapshots can be found at:

https://snapshots.sourceware.org/gdb/trunk/

It gets regenerated every 15 minutes, if there have been any changes
since the last build. The latest can always be found here:

https://snapshots.sourceware.org/gdb/trunk/latest/src/

It doesn't generate snapshots for the branches yet. I think we don't
really need the diffs. We have to see if we can also do the ari and
docs updates on snapshots.sourceware.org.

Cheers,

Mark

[-- Attachment #2: 0001-Add-gdb-snapshots-builder.patch --]
[-- Type: text/plain, Size: 3535 bytes --]

From 5520d4377b37890d8866910503ded940b54da054 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Sat, 25 May 2024 00:35:59 +0200
Subject: [PATCH] Add gdb-snapshots builder

---
builder/master.cfg | 47 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)

diff --git a/builder/master.cfg b/builder/master.cfg
index db82c8b4122f..cbf9e30fd055 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -1038,6 +1038,19 @@ gdb_try_scheduler = schedulers.AnyBranchScheduler(
"gdb-try-fedora-ppc64le"])
c['schedulers'].append(gdb_try_scheduler)

+gdb_snapshot_scheduler = schedulers.Periodic(
+ name="gdb-snapshots",
+ change_filter=util.ChangeFilter(project="binutils-gdb",
+ branch="master"),
+ branch="master",
+ periodicBuildTimer=15*60, # 15 minutes in seconds
+ onlyIfChanged=True,
+ fileIsImportant=gdbImportant,
+ onlyImportant=True,
+ reason="gdb periodic project master branch snapshot",
+ builderNames=["gdb-snapshots"])
+c['schedulers'].append(gdb_snapshot_scheduler)
+
# A scheduler for everything binutils-gdb & gcc without filters
binutils_gdb_scheduler = schedulers.SingleBranchScheduler(
name="binutils-gdb",
@@ -3210,6 +3223,23 @@ def make_gdb_check_step(runtestflags = None):
haltOnFailure=False, flunkOnFailure=True)
return step

+gdb_step_setversion = steps.ShellCommand(
+ workdir='binutils-gdb',
+ name="set gdb version",
+ command='sed -i -e "s/DATE/$(date -u +%Y%m%d)/;s/git/$(git rev-parse --short @)/" gdb/version.in')
+gdb_step_src_release = steps.ShellCommand(
+ workdir='binutils-gdb',
+ name="src-release",
+ command="./src-release.sh -g gdb")
+gdb_create_output_step = steps.ShellCommand(
+ workdir='binutils-gdb',
+ name="create output",
+ command="mkdir -p /home/builder/shared/output/src &&"
+ + "mv ./gdb-*tar.gz /home/builder/shared/output/src")
+gdb_create_publish_file_step = steps.ShellCommand(
+ name="create publish file",
+ command="echo gdb/trunk > /home/builder/shared/publish")
+
gdb_factory = util.BuildFactory()
gdb_factory.addStep(gdb_git_step)
gdb_factory.addStep(gdb_rm_step)
@@ -3327,6 +3357,13 @@ gdb_factory_sanitize.addSteps(bunsen_logfile_upload_cpio_steps(
tagsuffix='/extended-gdbserver'))
gdb_factory_sanitize.addStep(gdb_rm_step)

+gdb_factory_snapshot = util.BuildFactory()
+gdb_factory_snapshot.addStep(gdb_git_step)
+gdb_factory_snapshot.addStep(gdb_step_setversion)
+gdb_factory_snapshot.addStep(gdb_step_src_release)
+gdb_factory_snapshot.addStep(wait_snapshots_output_ready_step)
+gdb_factory_snapshot.addStep(gdb_create_output_step)
+gdb_factory_snapshot.addStep(gdb_create_publish_file_step)

gdb_alma_x86_64_builder = util.BuilderConfig(
name="gdb-alma-x86_64",
@@ -3534,6 +3571,16 @@ gdb_ubuntu_riscv_builder = util.BuilderConfig(
factory=gdb_factory)
c['builders'].append(gdb_ubuntu_riscv_builder)

+gdb_snapshots_builder = util.BuilderConfig(
+ name="gdb-snapshots",
+ collapseRequests=True,
+ properties={'container-file':
+ readContainerFile('debian-stable')},
+ workernames="snapshots",
+ tags=["gdb-snapshots"],
+ factory=gdb_factory_snapshot)
+c['builders'].append(gdb_snapshots_builder)
+
# binutils-gdb build steps, factory and builders
# just a native build

--
2.45.1