mirror of https://gerrit.osmocom.org/osmo-ci
121 lines
3.4 KiB
YAML
121 lines
3.4 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
|
|
num-to-keep: 120
|
|
artifact-days-to-keep: -1
|
|
artifact-num-to-keep: -1
|
|
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
|