jobs/osmocom-api: add jenkins-job-builder config

Add a jenkins-job-builder configuration for the existing Osmocom_API job
and refactor it to not use the deprecated multi-scm plugin. Also update
the git clone urls.

Related: OS#5763
Change-Id: Ia518979307ce633ccd2c431a8e8eea866da2a50d
This commit is contained in:
Oliver Smith 2022-11-16 12:33:53 +01:00
parent f560ce08ab
commit c4924d2657
1 changed files with 89 additions and 0 deletions

89
jobs/osmocom-api.yml Normal file
View File

@ -0,0 +1,89 @@
- job:
concurrent: false
description: This job builds the doxygen API documentation for latest libosmo*
and uploads it to <a href="https://downloads.osmocom.org/api/latest/"
>https://downloads.osmocom.org/api/latest/</a>
name: Osmocom_API
node: osmocom-master-debian9
project-type: freestyle
publishers:
- email:
notify-every-unstable-build: true
recipients: jenkins-notifications@lists.osmocom.org
triggers:
- timed: "H H * * *"
wrappers:
- ssh-agent-credentials:
users:
- api@osmocom
parameters:
- string:
name: BRANCH
description: osmo-ci.git branch
default: 'master'
scm:
- git:
branches:
- '$BRANCH'
url: https://gerrit.osmocom.org/osmo-ci
git-config-name: 'Jenkins Builder'
git-config-email: 'jenkins@osmocom.org'
wipe-workspace: true
builders:
- shell: |
# Repositories for which doxygen documentation will be generated and
# uploaded, also dependencies which need to be built
repos_api="
libosmocore
libosmo-abis
libosmo-dsp
libosmo-netif
libosmo-sccp
osmo-gmr"
# Source common.sh from osmo-ci.git for osmo_git_clone_url()
. scripts/common.sh
# Put git repos and install data in a subdir, so it isn't in the root
# of the cloned osmo-ci.git repository
mkdir _osmocom_api
cd _osmocom_api
# Prepare pkgconfig path
export PKG_CONFIG_PATH=$PWD/install/lib/pkgconfig
mkdir -p "$PKG_CONFIG_PATH"
# Prepare known_hosts
cat > known_hosts <<EOF
[ftp.osmocom.org]:48 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDgQ9HntlpWNmh953a2Gc8NysKE4orOatVT1wQkyzhARnfYUerRuwyNr1GqMyBKdSI9amYVBXJIOUFcpV81niA7zQRUs66bpIMkE9/rHxBd81SkorEPOIS84W4vm3SZtuNqa+fADcqe88Hcb0ZdTzjKILuwi19gzrQyME2knHY71EOETe9Yow5RD2hTIpB5ecNxI0LUKDq+Ii8HfBvndPBIr0BWYDugckQ3Bocf+yn/tn2/GZieFEyFpBGF/MnLbAAfUKIdeyFRX7ufaiWWz5yKAfEhtziqdAGZaXNaLG6gkpy3EixOAy6ZXuTAk3b3Y0FUmDjhOHllbPmTOcKMry9
[ftp.osmocom.org]:48 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPdWn1kEousXuKsZ+qJEZTt/NSeASxCrUfNDW3LWtH+d8Ust7ZuKp/vuyG+5pe5pwpPOgFu7TjN+0lVjYJVXH54=
[ftp.osmocom.org]:48 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8iivY70EiR5NiGChV39gRLjNpC8lvu1ZdHtdMw2zuX
EOF
# Clone and build the repositories
for i in $repos_api; do
git clone "$(osmo_git_clone_url "$i")"
cd "$i"
autoreconf -fi
./configure \
--prefix=$PWD/../install \
--with-systemdsystemunitdir=no
make $PARALLEL_MAKE install
cd ..
done
# Upload all docs
for i in $repos_api; do
if ! [ -d "$i"/doc ]; then
# e.g. libosmo-abis is built as dependency for others but doesn't
# have its own doxygen documentation as of writing
continue
fi
rsync \
-avz \
--delete \
-e "ssh -o 'UserKnownHostsFile=known_hosts' -p 48" \
./"$i"/doc/ \
api@ftp.osmocom.org:web-files/latest/"$i"/
done