It seems that some users are running nightly builds in production on
EOL Debian 10, which we never imagined and hence didn't keep an archive
of those builds :/
We typically keep nightly builds for the latest version of each
distribution. That is correct for CentOS and Debian, but we forgot
to update Ubuntu from 21.04 to 22.04 it seems :(
After cloning a repository, go back into the workspace directory. Run
scripts/osmo-ci-docker-rebuild.sh from there, instead of the version
cloned into ~/osmo-ci. This is the behavior one would expect.
Without this patch, a _docker_playground temporary git clone gets
created/used in ~/osmo-ci, although it would make much more sense to
have it in the workspace dir.
Replace the legacy git.osmocom.org clone URLs with either gerrit or
gitea in most places. Besides not using legacy urls anymore, the
advantage of using gerrit directly is that we don't have a delay of 10
min to several hours on the repository.
* ansible/roles/osmocom-workstation: not sure if still used, would need
a bit of a rewrite to use logic similar to osmo_git_clone_url().
Change the rsync command to use the packages from
/downloads/home/packages/web-files/osmocom: on the same server as
source, which is where obs.osmocom.org is pushing the packages.
Remove xUbuntu_19.04 from the directories to sync, as we don't build for
it anymore. It's not an LTS release (unlike 18.04, 20.04) and it's EOL.
There's a .~tmp~ file on the remote that currently causes the rsync
command to fail. Ignore all files starting with a dot.
rsync: [sender] opendir "/opensuse/repositories/network:/osmocom:/nightly/Raspbian_11/.~tmp~" (in opensuse-full-really-everything-including-repositories) failed: Permission denied (13)
It's time to update the script to sync the obs.osmocom.org packages
instead of the ones from build.opensuse.org, I'll do that in the next
patch. Nevertheless, I think it makes sense to add this exclude argument
in case OBS (our instance) also creates temporary files like this.
Debian / Raspbian 10 are getting a bit old, and our test suites also
all have shifted to 11 by now, so let's rather keep a nightly archive of
11 as opposed to 10
Sync files into a temporary directory first, and only rename the temp
dir to the final dir name if rsync succeeds. Otherwise, exit with error.
Import scripts from OS#4862 to have them properly versioned. We use this
to replicate Osmocom related packages from OBS to:
Put it in contrib/, because it doesn't need to get installed to the
jenkins nodes (as it would happen with everything in scripts/).
Make osmo-gsm-manuals.git available as ~/osmo-gsm-manuals, so it can be
used by osmo-trx and osmo-bts (the only two projects building manuals,
which are not running in docker as of writing) instead of cloning the
repository in their contrib/jenkins.sh.
A similar change to clone osmo-gsm-manuals in the debian-stretch-jenkins
image used by all other jobs that build manuals, is done in
osmo-ci's contrib/jenkins.sh is called by the update-osmo-ci-on-slaves
Instead of building "osmocom:deb9_amd64" from this repository, build
"$USER/debian-stretch-jenkins" from docker-playground.git (same
Dockerfile). Adjust all jobs to use the new image name.
Add a new "update-osmo-ci-on-slaves-dp" jenkins job, which triggers
the existing "update-osmo-ci-on-slaves" job whenever
Replace docker/rebuild_osmocom_jenkins_image.sh with
scripts/osmo-ci-docker-rebuild.sh, so we can get rid of the docker dir.
I thought about dropping the script completely, and directly writing the
two lines into contrib/jenkins.sh. But I kept the extra script for
convenience, when testing locally.
Depends: docker-playground I125ae8a6bcabbd1f485028c79b0abacda0622c3a
We're not calling this script on the update-osmo-ci-on-slaves job yet. To move
over to calling this script, apply some edits we made on the jenkins UI in the
Instead of modifying the job on Jenkins, let's do it like in our
other projects. Create the diretcory if it doesn't exist and use
git pull origin for the Debian9 system.