Commit Graph

30 Commits

Author SHA1 Message Date
Harald Welte 26ae81f6bd obs-mirror: rsync over from remote server via rsync
We no longer run the archive on the same machine/lxc as the normal
downloads server

Change-Id: Id490690394db9eb773f945ad4d7e65fe7fd5e17a
Related: OS#6257
2023-11-15 15:17:07 +01:00
Harald Welte 0afdbcf8bd obs-mirror: keep nightly builds for two years
As we're moving the archive to a machine with sufficient storage,
let's extend the time we keep an archive of nightly builds from
one month to two years.

Change-Id: Ic8529ee5679f15c4e4940a5f095374605c2e5c79
Related: OS#6257
2023-11-14 21:23:59 +01:00
Oliver Smith 8920d73730 jobs/osmocom-release-tarballs: modernize
Rewrite the osmocom-release-manuals script (previous version is in
docker-playground Ic35a28a386170b85d32aab8f2bd33e48e6d45392):

* Instead of using a separate docker container for this, that also lists
  all dependencies for all packages (as needed to pass ./configure), use
  debian-bookworm-build and install missing packages at time of
  generating the tarballs with "apt-get build-dep". Missing dependencies
  are typically other Osmocom libraries.

* This allows removing the debian 11 based release-tarball-build-dist
  container. As the script doesn't depend on a separate docker container
  anymore, move it to osmo-ci.git.

* Make it similar to scripts/manuals/publish-manuals-for-tags.sh, so it
  is easier to maintain both.

Related: OS#6057
Change-Id: I9f8b671b9780da500637a64fc4dbc72b450f9d11
2023-08-17 14:01:32 +02:00
Harald Welte 3a74117ead update obs-mirror include list
* add Debian 12 for latest and nightly package archive
* replace nightly Ubuntu 22.04 with 23.04
* stop nightly Debian 10 archive (11 + 12 is sufficient)

Change-Id: I4f4103732a6dc3d73ada85482c6a2f806b4100aa
2023-08-11 08:05:45 +02:00
Oliver Smith fdf3336f6c contrib/obs-upgrade-eclipse-titan.sh: new script
Add helper script for upgrading the eclipse-titan package in OBS.

Change-Id: Ia42adf5ddb469b18588c659adc9ded951e68e44b
2023-03-02 10:18:25 +01:00
Harald Welte 47e90f10d2 obs-mirror: Also keep nightly builds for Debian 10
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 :/

Change-Id: I40c628e032e2c7ce8447657319a7c1206933c163
2022-12-10 12:17:59 +01:00
Harald Welte 94a57624b4 obs-mirror: Keep nightly packages for 22.04, not 21.04
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 :(

Change-Id: Ic82dfc7e8c4f4a362f7d05b5bc2069d42a0bcdb2
2022-12-10 12:15:12 +01:00
Harald Welte 34643301c3 obs-mirror: Keep latest build also for Ubuntu 22.04
Ubuntu 22.04 is very much a stable/maintained distribution, so we
should keep an archive of "latest" builds for it.

Change-Id: I54988915ec4bcf2ebb1e5cd23ceb049789c56bca
2022-12-10 12:14:37 +01:00
Oliver Smith 1259ab99c6 contrib/jenkins.sh: set-url for existing clones
Make sure that the recent change from git.osmocom.org ->
gerrit.osmocom.org for git clone urls is applied to the existing clones
as well.

Change-Id: I3d9c193bf353ecff0ee8bb4c507de59139fc0925
2022-10-20 14:44:36 +00:00
Oliver Smith 5485ed3198 contrib/jenkins.sh: run …rebuild.sh from workspace
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.

Change-Id: I998c0d47ee5ce6f9978d1a6c9e195d5ce40e4e85
2022-10-20 09:19:09 +00:00
Oliver Smith 7fc58133d6 Replace most remaining git.osmocom.org urls
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.

Not replaced:
* 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().

Related: https://osmocom.org/projects/cellular-infrastructure/wiki/Git_infrastructure
Change-Id: I90409c9e7f4db4e1765647021625f9acfccaa78b
2022-09-26 15:07:59 +02:00
Harald Welte 5455b42405 update git URLs (git -> https; gitea/gerrit)
Unencrypted git:// protocol offers no integrity or authentication,
making it subject to tampering.  Use https:// instead.

https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git
https://blog.readthedocs.com/github-git-protocol-deprecation/

Change-Id: Ia44e4127ff87a3d4d747225d3258188a0a891f1b
2022-08-13 04:02:51 +07:00
Oliver Smith 8b6447a1be obs-mirror: use obs.osmocom.org packages as source
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.

Related: OS#5557
Change-Id: Id6be69530a7aa65b0cf3866fc7e65af79c9d9d45
2022-08-05 08:16:11 +00:00
Oliver Smith 7340fa7561 obs-mirror.sh: exclude dotfiles
There's a .~tmp~ file on the remote that currently causes the rsync
command to fail. Ignore all files starting with a dot.

Fix for:
  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.

Change-Id: Iacee2ea4acada60d8de960592fb828911a55781e
2022-08-04 13:41:10 +00:00
Oliver Smith 871ff5c685 obs-mirror-include.txt: drop latest/Debian_9.0
Don't attempt to sync Debian_9.0, as we are not building for it anymore
and it doesn't exist anymore.

https://download.opensuse.org/repositories/network:/osmocom:/latest/

This should fix the verify-obs-mirror job.

Change-Id: I25ba2790a8ae6a54068b8ad4035a669f48795509
2022-08-01 11:50:12 +02:00
Harald Welte 4bf60895e9 obs-mirror: Keep more 'latest' distributions
'latest' doesn't change very often, so we can keep history for more
distros.

Change-Id: I3c8ac31bdf394f8b94ed643413ee2a1379eb76a2
2021-12-30 16:32:04 +01:00
Harald Welte fe8c4552d8 obs-mirror-archive: keep raspbian + debian 11 (instead of 10)
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

Change-Id: Id08acf82d9c959553684d0d95b31a8c0379115a6
2021-12-30 16:32:04 +01:00
Harald Welte cce962cdc0 obs-mirror.sh: Keep log files of rsync job
Before this commit, the obs-mirror.log was overwritten every night,
meaning we have no history of rsync log files.

Change-Id: I26392ed8615b9f4a6aa23e92b82ad9aff01eac4b
2021-12-29 17:07:22 +01:00
Oliver Smith 958224ea62 contrib/obs-mirror: log DRY var in rm script
Related: SYS#5764
Change-Id: I705e52030d538e6d86c72f2bccb0eb97e6dab1de
2021-12-20 13:35:19 +00:00
Oliver Smith 9b694744ea contrib/obs-mirror: redirect all output to a log file
Related: SYS#5764
Change-Id: Ie56c901877a3b0a1ad566cb243ab698f292407d5
2021-12-20 13:35:19 +00:00
Oliver Smith e3aaae199f contrib/obs-mirror: stop script on rsync error
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.

Related: SYS#5764
Change-Id: Icfefd8e4bae1fd6c73445c7427aaa842c0391b2d
2021-12-20 13:35:19 +00:00
Oliver Smith 68896ff0ae contrib/obs-mirror: adjust includelist path
Point at obs-mirror-include.txt from this git repository.

Related: OS#4862
Change-Id: I4c6a6e424fd727de4e8058c916aa7eb43e7eb4b2
2021-12-20 13:35:19 +00:00
Oliver Smith 05902bd35e contrib/obs-mirror: import
Import scripts from OS#4862 to have them properly versioned. We use this
to replicate Osmocom related packages from OBS to:
https://download.osmocom.org/obs-mirror

Put it in contrib/, because it doesn't need to get installed to the
jenkins nodes (as it would happen with everything in scripts/).

Related: OS#4862
Change-Id: I3f47cddbcee6c9b85fde77a039dcd5b54dd89f2d
2021-12-20 13:35:19 +00:00
Oliver Smith c32a0f60e0 contrib/jenkins: add missing cd ~/osmo-ci
Fixes: 829f8b94 ("ansible: tasks/osmo-ci: clone osmo-gsm-manuals")
Change-Id: I3ca101f73cecfc5cda447ffce53a104ecc39e1fd
2021-01-13 16:25:20 +01:00
Oliver Smith d02c86663e contrib/jenkins.sh: clone osmo-gsm-manuals too
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
docker-playground 7e4c8c6f1f798b9b8e57af97131ce3759528e0de.

osmo-ci's contrib/jenkins.sh is called by the update-osmo-ci-on-slaves
job.

Related: OS#4912
Change-Id: I742fd929e39ca32d6034a30af75b6c8e5b47b233
2021-01-13 11:33:16 +01:00
Pau Espin b3819d2c6a contrib/jenkins: Avoid docker setup if OSMO_CI_NO_DOCKER=1
Some jenkins slaves may not need docker (or even have it installed).

Change-Id: Ibfc4a81d3d621503b40204b7452ead56c726af97
2020-03-03 12:34:56 +01:00
Oliver Smith b79e06367b docker: move to docker-playground.git
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
docker-playground.git changes.

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.

Related: OS#4345
Depends: docker-playground I125ae8a6bcabbd1f485028c79b0abacda0622c3a
Change-Id: I30a61aebcadef5536e74edd35e1c75ef77a2da9f
2020-01-15 10:24:38 +01:00
Neels Hofmeyr f074019027 contrib/jenkins.sh: rather git checkout -f instead of pull
Change-Id: Idc672879dcb3d38978e27b90c173f0aa950c4eb1
2017-11-28 05:43:26 +01:00
Neels Hofmeyr 4b5d368932 contrib/jenkins.sh: update from current jenkins job update-osmo-ci-on-slaves
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
meantime.

Change-Id: I54d3f56a89934c1c7b0e445b5c447c91bf94d579
2017-11-28 05:16:37 +01:00
Holger Hans Peter Freyther 9e6db799d5 jenkins: Follow the convention and create a jenkins.sh as well
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.

Change-Id: I0ecdc02e3271fe09980f370167277370c599fcfa
2017-11-10 16:43:06 +00:00