aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jobs/gerrit-binpkgs.yml22
-rw-r--r--scripts/obs/README1
-rwxr-xr-xscripts/obs/gerrit_binpkgs.sh40
3 files changed, 43 insertions, 20 deletions
diff --git a/jobs/gerrit-binpkgs.yml b/jobs/gerrit-binpkgs.yml
index 7cf2230..4215a02 100644
--- a/jobs/gerrit-binpkgs.yml
+++ b/jobs/gerrit-binpkgs.yml
@@ -60,27 +60,9 @@
osmo-ci
git -C osmo-ci log --oneline
- # 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"
+ cd code-from-gerrit
+ ../osmo-ci/obs/gerrit-binpkgs.sh "$DISTRO"
- # 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
diff --git a/scripts/obs/README b/scripts/obs/README
index cf8e201..1e4ca2b 100644
--- a/scripts/obs/README
+++ b/scripts/obs/README
@@ -4,6 +4,7 @@ This directory contains the following scripts, related to building Osmocom
projects in OBS (Open Build Service) and building binary packages. Here is an
overview of the scripts, run them with -h to get a more detailed description.
+* gerrit_binpkgs.sh: build source + binary packages like CI in gerrit patches
* build_srcpkg.py: build one source package for an Osmocom project
* update_obs_project.py: generate source packages and upload them to OBS
* build_binpkg.py: build rpm/deb packages for one Osmocom project
diff --git a/scripts/obs/gerrit_binpkgs.sh b/scripts/obs/gerrit_binpkgs.sh
new file mode 100755
index 0000000..5c3f3dd
--- /dev/null
+++ b/scripts/obs/gerrit_binpkgs.sh
@@ -0,0 +1,40 @@
+#!/bin/sh -e
+SCRIPTS_OBS_DIR="$(realpath "$(dirname "$0")")"
+
+DISTRO="$1"
+if [ -z "$DISTRO" ]; then
+ echo "usage: gerrit-binpkgs.sh DISTRO"
+ echo "examples:"
+ echo " gerrit-binpkgs.sh debian:12"
+ echo " gerrit-binpkgs.sh centos8"
+ exit 1
+fi
+
+GIT_REPO_DIR="$(git rev-parse --show-toplevel 2>/dev/null || true)"
+if [ -z "$GIT_REPO_DIR" ]; then
+ echo "ERROR: run inside a git repository of an Osmocom project"
+ exit 1
+fi
+
+CACHE_DIR="$SCRIPTS_OBS_DIR/_cache"
+PROJECT_NAME="$(basename "$GIT_REPO_DIR")"
+
+# Copy the source dir into the cache dir. It will be mounted inside the docker
+# containers for building source and binary packages (so using a symlink does
+# not work). Use rsync so it is very fast.
+echo ":: Copying the source to the cache dir"
+mkdir -p "$CACHE_DIR"
+rsync -a --delete "$GIT_REPO_DIR" "$CACHE_DIR"
+
+echo ":: Building the source package"
+"$SCRIPTS_OBS_DIR"/build_srcpkg.py \
+ --docker \
+ --feed master \
+ --git-skip-fetch \
+ --git-skip-checkout \
+ "$PROJECT_NAME"
+
+echo ":: Building the binary packages"
+"$SCRIPTS_OBS_DIR"/build_binpkg.py \
+ --docker "$DISTRO" \
+ "$PROJECT_NAME"