diff --git a/jobs/gerrit-binpkgs.yml b/jobs/gerrit-binpkgs.yml index 7cf2230b..a6cf44b8 100644 --- a/jobs/gerrit-binpkgs.yml +++ b/jobs/gerrit-binpkgs.yml @@ -28,7 +28,7 @@ scm: - git: - basedir: 'code-from-gerrit' + basedir: '$PROJECT_NAME' url: '$GERRIT_REPO_URL' credentials-id: d5eda5e9-b59d-44ba-88d2-43473cb6e42d branches: @@ -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 "$PROJECT_NAME" + ../osmo-ci/scripts/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 cf8e2019..e6ca5021 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 for gerrit * 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 00000000..1e4ae26d --- /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 almalinux:8" + 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"