diff options
-rw-r--r-- | jobs/gerrit-binpkgs.yml | 22 | ||||
-rw-r--r-- | scripts/obs/README | 1 | ||||
-rwxr-xr-x | scripts/obs/gerrit_binpkgs.sh | 40 |
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" |