aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2023-09-08OBS: build_binpkg: support debian:testingOliver Smith1-1/+2
Change-Id: I71de94ef34c3ccc3610643bd8861b78cccd266a5
2023-09-08OBS: add sync_obs_projects.pyOliver Smith5-0/+374
Add a new script that syncronizes base distributions from openSUSE's OBS, like Debian:12. This is done by getting "meta" and "prjconf" from the source OBS, adjusting it and writing it to our OBS instance. The motivation for this is making our OBS more resilient, by using these synchronized projects we can build packages even if the openSUSE OBS API is not reachable. Related: OS#6165 Change-Id: I00122f7819ba682cb791c370d781377cfb302629
2023-09-08OBS: lib/osc: add private proj variableOliver Smith2-18/+12
Adjust lib/osc.py to take the OBS project from a global variable that can be set with lib.osc.set_apiurl(), instead of using lib.args.obs_project. Move the sanity check to set_apiurl(). This is in preparation for adding a new sync script, which will operate on multiple OBS instances. Related: OS#6165 Change-Id: Iabb871bcb432f2fbdaec9cbcab3d663ccf969901
2023-09-08OBS: build_srcpkg.Dockerfile: use bookwormOliver Smith2-15/+5
rebar3 is in debian bookworm's repositories, hence it is not needed anymore to use osmocom:latest here. Change-Id: Iddd0295ee928fc9a47d4d206e414b78a2561d13d
2023-08-29jobs/master-builds: add xgoldmonOliver Smith1-0/+23
Replace the legacy xgoldmon job (not done with jenkins-job-builder) with a new master-xgoldmon job that works more similar to other master jobs: - build in docker - have build commands in a jenkins.sh script Put the jenkins.sh script into osmo-ci, as the upstream repository is outside of Osmocom infrastructure. The motivation for this change is, that the current xgoldmon job is failing since libosmocore depends on liburing by default. This uncovered that the job is still running outside of docker, where the dependency has already been added. The following patches will modernize other jobs which have the same problem. Change-Id: Ice5704eb12f3c3a777961bc18a55fac63df80fd6
2023-08-25scripts/osmocom-api-doxygen: check ssh earlyOliver Smith1-1/+6
Check for working SSH right at the start of the job, so we don't need to wait 2 minutes until it has built everything to find it out. Change-Id: Id93c15d38a49859dc63d39f70f051a7df871c398
2023-08-25jobs/osmocom-api: run inside dockerOliver Smith1-0/+51
Run the osmocom-api job inside docker, so all depends are available (fixes that it currently fails because liburing isn't available for libosmocore). Use the contrib/known_hosts file, instead of writing an own copy during the job. Change-Id: I6e831c71c4c88772c3e4232fcb1a9e2c1c73d997
2023-08-17jobs/osmocom-release-tarballs: modernizeOliver Smith1-0/+342
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-17scripts/manuals: adjust patch for removing draftOliver Smith1-19/+3
Adjust the patch, to not remove the "NOTE: TO REMOVE DRAFT MODE" as it isn't in osmo-gsm-manuals anymore. Related: osmo-gsm-manuals I23d11bab274793eb8bcedc3fd9290901823e32d2 Change-Id: Ia27cb8e4dd0204c0a91c322bed65bf8c9847a7be
2023-08-14scripts/osmo-ci-docker-rebuild: drop debian-bullseye-jenkinsOliver Smith1-3/+1
It is not used anymore, stop building it. Related: OS#6057 Change-Id: I8e11e4c87fea9a2cfc5e72f0427cf4ca82030554
2023-08-14scripts/manuals/publish-manuals-for-tags: use bookwormOliver Smith1-1/+1
Related: OS#6057 Change-Id: Ifa56e7f035fde5fb750376c64572277de2417d65
2023-08-03repo-install-test: add debian12Oliver Smith3-1/+80
Related: OS#6057 Change-Id: I51fa3c5212b5e29f4c2804384781693e8de2c097
2023-07-31scripts/jenkins-gerrit: sort jobs listOliver Smith1-3/+3
Having two debian entries in there in random order looks weird so sort the job lists. Change-Id: I795f821783b52a6a9cd1967d33f67b656efccf22
2023-07-31scripts/jenkins-gerrit: make assert more verboseOliver Smith1-1/+2
Change-Id: I0ea40663220f7eb8ee72e43f3f6b776be5835db2
2023-07-31jobs/gerrit-binpkgs: don't hardcode distrosOliver Smith1-7/+21
Make it possible to set a list of distributions to check in gerrit-verifications.yml instead of only having one boolean for testing two hardcoded rpm and deb distributions. Change-Id: I59487e3dc2f55057de1b6a322f088fff0d18654c
2023-07-31jobs/gerrit: refactor pipeline scriptOliver Smith1-5/+8
* Deduplicate the code to run a job by moving it to a function. * Print the status of jobs right after they finished, instead of waiting until all jobs are done * Make the status print messages more readable Change-Id: I641a5b483721ce2bbf21bd61d8f4e83faf94ac24
2023-07-13jobs: master/gerrit: use debian bookworm (12)Oliver Smith1-5/+5
Upgrade from debian 11 for master and debian 10 for gerrit verifications to using debian 12 for both. Previously we intentionally built against the older debian 10 version to ensure that our programs still build there. However it is easier to maintain the docker containers if we just use the most recent debian version for both and it makes the build environment more consistent - if a patch passes in gerrit verifications, we expect it to pass in master builds as well. And the other way around, I can just run CI of all master jobs when developing a change and assume that if they pass, gerrit verifications will run as well. As long as we provide binary packages in OBS for debian 11, 10, ... we will still notice if a build breaks on an older debian release. I think this is good enough given that it will probably not happen that often, but if we decide that we really want to ensure it still builds on older distros at gerrit-verification time then the more suitable place to add this would be in the deb-build verification test. It is more maintainable there, because the dependencies just get installed from the debian/control file, no need to add all of them to a docker container beforehand. The new container is debian-bookworm-build, see the docker-playground commit for reasoning why it is not debian-bookworm-jenkins. Related: OS#6057 Depends: docker-playground I49aaf62b5b97775f923453611df3b91354a640a0 Change-Id: I079e55a1325083714c8d39f922b2563e843fc0bc
2023-06-22obs: make limesuite build with debian 12Oliver Smith1-0/+7
Related: OS#6057 Change-Id: Ic81dfbfa232b92e3fd9af9c5d7d0f2aca4b9879c
2023-05-30Fix failing Osmocom-release-manuals jobOliver Smith1-0/+6
Add a workaround that upgrades the osmocom-nightly package before installing build dependencies for the given package. This is not very elegant, it would make more sense if the docker image we use here did not have the nightly Osmocom repository configured in the first place (as this job is about creating manuals for tagged releases). But the image is used by jenkins build verification too and I don't think it's a good use of time to change this right now. Fix for: + apt-get -y build-dep /build Note, using directory '/build' to get the build dependencies Reading package lists... Building dependency tree... Reading state information... Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: osmo-gsm-manuals-dev : Depends: osmocom-nightly (= 202305300026) but 202305290026 is to be installed Change-Id: If28a34d3e5b07216c5310b19623fcc42692f65c3
2023-05-19data/build_rpm: force refresh of package indexesOliver Smith1-0/+3
The yum-builddep command already has a mechanism to update the package index data if the last update (when the docker image was built) was some time ago. However when the packages we use happened to be updated in that timeframe, the indexes are not updated and attempting to download them leads to 404 errors. Force refresh all package indexes to avoid this. Fixes: OS#6038 Change-Id: I6e2592466b6190782cdd93e00b3d5020fd665372
2023-05-10obs: build_binpkg: ubuntu: use manuals containerOliver Smith1-1/+1
Use the optimization of only installing osmo-gsm-manuals-dev and all its dependencies once not only with debian, but also with ubuntu. Change-Id: Ic9fef9f10b4384538e7a73479bf57a9b737a9a55
2023-05-10obs: build_binpkg: add feed argumentOliver Smith3-11/+26
Make it possible to configure a different feed than master inside the docker container that gets used to build the packages. This way we can build ubuntu packages against nightly. We don't build the Osmocom packages in the master feed for Ubuntu as we rarely have a build error that only happens on ubuntu. With this patch, it can be easily reproduced if it happens. Change-Id: Ibc27459815f26e8c691c83fe594ff84962b991f5
2023-05-10obs: build_binpkg --docker: set metavar to DISTROOliver Smith1-1/+1
Make it obvious that the argument passed to --docker is the Linux distribution that will be used. $ ./build_binpkg.py -h usage: build_binpkg.py [-h] [-d [DISTRO]] [-j JOBS] [-r] [-v] package Change-Id: Ibf6f1a8fce7fd13795f1c25c75e14fb9eb8aa2b6
2023-05-10obs: support all debian/ubuntu/almalinux versionsOliver Smith3-13/+24
Adjust the code so one can pass all versions, instead of hardcoding only debian:11, ubuntu:22.04, almalinux:8. I'll use this for reproducing a build error that happens on e.g. ubuntu:18.04. Change-Id: Id85f5b67d144dc178d3fb23ff8e533a671473363
2023-04-26publish-manuals-for-tags: enable IU/PFCP VTY cmdsOliver Smith1-1/+15
Enable configure options to build manuals with all VTY commands in the script that builds manuals for tagged releases. Related: OS#6013 Change-Id: I9685857348e3b38f13acc1429c7a49fb9e5d92f3
2023-04-06obs: update_obs_project: add ALL_OSMOCOM_PACKAGESOliver Smith1-3/+6
Add this alias to use all Osmocom packages, but no the misc packages that would also be selected if not specifying the packages argument at all (limesuite, neocon, open5gs). This will be used for building packages from the rhizomatica branches, so we don't check the git repositories of these misc projects for the git branches. Related: OS#5981 Change-Id: I4265f43408bc21ac8765449d6766381c75cafe86
2023-04-06obs: update_obs_project: add --delete argOliver Smith3-3/+43
Add a new argument to delete packages from OBS if the git branch does not exist anymore, but the packages still exists in OBS. Related: OS#5981 Change-Id: Ib5ccf93a5a0cf8981fc35976bb9e0d3a29721b8d
2023-04-06obs: add --conflict-pkgname argOliver Smith3-2/+5
Prepare to create new feeds for the rhizomatica/testing and rhizomatica/production branches, which will be based on osmocom:latest. They will depend on osmocom-latest (the "conflict package"/meta package), even though their feed name is not latest. Related: OS#5981 Change-Id: I58e33bb003e2a4af9e9a7b53e5f79a91c3b541eb
2023-04-05obs: wireshark: user proper OBS api urlOliver Smith1-1/+1
Set the proper https://obs.osmocom.org api URL, not "obs.osmocom.org". The latter only works on jenkins because we have set up an alias there, but not locally without setting up the same alias. Change-Id: I663ba4f137a57890ba9a2079ef3453bb7544de8b
2023-03-24scripts/manuals: fix missing UserKnownHostsFileOliver Smith1-0/+4
Fix for: :: Listing files on server: /docs Host key verification failed. Related: OS#5902 Change-Id: I485e2268eec50f46ed0436d4b3a5cedfab20af96
2023-03-23jobs/osmocom-release-manuals: add new jobOliver Smith2-0/+458
Add a jenkins job that automatically builds manuals for release tags, if they don't exist on the server already. Closes: OS#5902 Related: https://downloads.osmocom.org/docs/ Change-Id: I0ecb238660553c3c857e1b310873eca8a8d09dab
2023-03-22obs: wireshark: remove laforge/amr-2023 branchOliver Smith1-1/+0
Remove it, as the AMR patches have been upstreamed \o/ Related: https://gitlab.com/wireshark/wireshark/-/merge_requests/10025 Change-Id: I7f3f06bc5390ffac9b3760035831ae17d28b744e
2023-03-22obs: build_binpkg: add ubuntu 22.04Oliver Smith4-3/+10
Add it for debugging a build failure that we only saw on Ubuntu. Related: OS#5946 Change-Id: I4a927447d8f8b89411b93c563fbc6aa8d4998ffa
2023-03-21scripts/docker-rebuild: add debian-bullseye-jenkins-armOliver Smith1-0/+1
Prepare to let all master-builds jobs use debian-bullseye instead of debian-buster. Depends: docker-playground I8e1741f86ffb8abd658d1e4e0415dfd11fb1a8a1 Related: OS#5949 Change-Id: I55bd5869ecd753549b8f2f2822e825623d940acd
2023-03-17jobs: add Osmocom_OBS_wiresharkOliver Smith1-0/+49
Add a nightly jenkins job that does the following: * Clone Wireshark from upstream * Merge several Osmocom branches on top * Build a source package * Submit it to the osmocom:wireshark OBS project Related: OS#2537 Change-Id: Ifb49c5cb22a4de0da30a920e5450a27172b11d73
2023-03-17obs: add --version-append argumentOliver Smith2-0/+10
Related: OS#2537 Change-Id: Iff5a530bebd645be13e0206ce0a670e1dfe6e2f9
2023-03-17obs: add --allow-unknown-packageOliver Smith2-2/+7
Prepare to add a wireshark package. It will be in its own osmocom:wireshark repository, and not in osmocom:nightly, :latest, :master, so it's not added to lib/config.py. Move lib.set_args() before parse_packages(), so the latter is able to use lib.args.allow_unknown_package. Related: OS#2537 Change-Id: I007f937ccb629e0593ec9253541ed05df42fac66
2023-03-17obs: srcpkg.build: fix conflict_version regressionOliver Smith1-2/+3
During refactoring, conflict_version was changed to version here, which was wrong. The packages need to depend on the conflict_version of the meta package, version is the version of the package itself. Fix for: The following packages have unmet dependencies: libosmo-netif-dev : Depends: osmocom-nightly (= 202303160009) but it is not going to be installed Depends: libosmocore but it is not going to be installed Depends: libosmonetif11 (= 1.3.0.8.9e65.202303160009) but it is not going to be installed libosmocore-dev : Depends: osmocom-nightly (= 1.8.0.79-b394d.202303170006) but it is not going to be installed Depends: libosmocore but it is not going to be installed Fixes: 0ed0e464 ("obs: don't pass conflict_version through functions") Change-Id: I2326e3817c6f6887ef1196e603c3877768119a66
2023-03-15obs: add --git-skip-checkout argumentOliver Smith2-0/+8
Prepare to use this for wireshark, to build a branch on-the-fly that does not get pushed to origin, with Osmocom patches on top of upstream master. Related: OS#2537 Change-Id: Ifc963daf51ba3542f67420daaf7b29745404a92e
2023-03-15obs: don't pass skip_up_to_date through functionsOliver Smith1-8/+6
Change-Id: Ide0c1f5452f5ce965541b45039345abc52b3d140
2023-03-15obs: don't pass meta through functionsOliver Smith1-3/+3
Change-Id: Ieb49e5f8630e3e918b11a7a225febbbcee2e82b3
2023-03-15obs: don't pass fetch through functionsOliver Smith4-16/+13
Change-Id: I0689868db6fadaaaca470cdefbf60ceedc2eb225
2023-03-15obs: don't pass conflict_version through functionsOliver Smith4-17/+20
Change-Id: I3d712e94d56269c49ee5baecfee1fa9f35101488
2023-03-15obs: don't pass branch through functionsOliver Smith3-13/+14
Change-Id: I9ec6d04c51bc795dd9cd4738313e60a556791eb2
2023-03-15obs: don't pass feed through functionsOliver Smith6-40/+48
Change-Id: I9124d33c45ef3fef48666b485fd169eec0eb393a
2023-03-15obs: don't pass proj through functionsOliver Smith2-22/+26
Change-Id: Id213ae155f34c74529845ff86468b68ffa6ffb1d
2023-03-15obs: lib.args: store argparse result hereOliver Smith4-3/+13
Prepare to add more arguments to the OBS scripts, so they can be used for building the wireshark package in its own OBS project. It was not so clear to me when writing this initially, but with more and more arguments getting added: it's not very maintainable to pass each variable from the argparse result several functions down to where it gets used... so unfortunately this means the code needs to be refactored to just use libs.args in the few lines of code where the arguments actually get used. This patch adds lib.args, and the next patches refactor existing code to use it instead of passing parameters, where it makes sense. After that follow the patches related to adding the wireshark package. Related: OS#2537 Change-Id: I48853444f1386dfb842c174ebc45f9decc8bec0f
2023-02-23build-old-tags: tags_to_ignore: add osmo-hlrOliver Smith1-0/+5
Add the osmo-hlr releases where tests are not foward-compatible to the related libosmocore change. Fixup releases 1.6.1 and 1.5.1 have been made that are foward compatible. Related: libosmocore I446e54d0ddf4a18c46ee022b1249af73552e3ce1 Change-Id: Ia772c9e823e494fdfce179da58735d3e6cee8e95
2023-02-20jobs/gerrit: start endianness job in pipelineOliver Smith1-0/+2
Related: OS#5884 Change-Id: Ib84a51aa8465cf513cb2e4b31121a04760f688e9
2023-02-20jenkins-gerrit: make links clickable againOliver Smith1-1/+1
After gerrit was upgraded, the comment formatting changed. Links inside blocks indented with two spaces cannot be clicked anymore, so change it to a listing. Change-Id: I4dc338c22e9afe4b9d9df845c6f5d9b3a91f93d9