osmo-ci/jobs/gerrit-binpkgs.yml

118 lines
3.3 KiB
YAML

# This file holds all gerrit verifications for building deb and rpm packages.
# https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/.
# One can simply add a gerrit job by adding project's repository to repos list.
- project:
name: gerrit-binpkgs
jobs:
- 'gerrit-binpkgs-{type}'
type:
- 'deb'
- 'rpm'
- job-template:
name: 'gerrit-binpkgs-{type}'
project-type: freestyle
node: osmocom-gerrit
concurrent: true
retry-count: 3 # scm checkout
properties:
- build-discarder:
days-to-keep: 30
description: |
{type} package job of CI for patches sent to
<a href="https://gerrit.osmocom.org">gerrit</a>
</br></br>
Related issue: <a href="https://osmocom.org/issues/2385">OS#2385</a>
parameters:
- string:
name: BRANCH_CI
description: |
osmo-ci.git branch
default: 'master'
- string:
name: GERRIT_REPO_URL
description: set by gerrit verification pipeline job
- string:
name: GERRIT_BRANCH
description: set by gerrit verification pipeline job
- string:
name: GERRIT_REFSPEC
description: set by gerrit verification pipeline job
- string:
name: PROJECT_NAME
description: project to test, e.g. 'libosmocore' (set by pipeline)
scm:
- git:
basedir: 'code-from-gerrit'
url: '$GERRIT_REPO_URL'
credentials-id: d5eda5e9-b59d-44ba-88d2-43473cb6e42d
branches:
- $GERRIT_BRANCH
refspec: $GERRIT_REFSPEC
name:
choosing-strategy: gerrit
wipe-workspace: true
skip-tag: true
submodule:
recursive: false
builders:
- shell: |-
# Skip rpm build if .spec.in file is missing
if [ "{type}" = "rpm" ] && [ -z "$(find code-from-gerrit -name '*.spec.in')" ]; then
set +x
echo
echo "No *.spec.in file found, skipping rpm build."
echo
exit 0
fi
# Clone osmo-ci.git
rm -rf osmo-ci
git clone \
--depth=1 \
--branch="$BRANCH_CI" \
https://gerrit.osmocom.org/osmo-ci \
osmo-ci
git -C osmo-ci log --oneline
# Get distro from type
case "{type}" in
deb) distro="debian:11" ;;
rpm) distro="almalinux:8" ;;
*) echo "unknown package format: '{type}'"; exit 1 ;;
esac
# Move code from gerrit to build_srcpkg.py's git cache
cache_dir=osmo-ci/scripts/obs/_cache
mkdir -p $cache_dir
mv code-from-gerrit "$cache_dir/$PROJECT_NAME"
# Set a known branch name
git -C "$cache_dir/$PROJECT_NAME" checkout -B "origin/gerrit"
# Build source package
cd osmo-ci/scripts/obs/
./build_srcpkg.py \
--docker \
--feed master \
--git-branch gerrit \
--git-skip-fetch \
"$PROJECT_NAME"
# Build binary package
./build_binpkg.py \
--docker "$distro" \
"$PROJECT_NAME"
wrappers:
- ansicolor:
colormap: xterm
- ssh-agent-credentials:
users:
- d5eda5e9-b59d-44ba-88d2-43473cb6e42d
# vim: expandtab tabstop=2 shiftwidth=2