From d49092ac70f03f702868ff72171514d27a78aad9 Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Mon, 15 Apr 2024 12:07:26 +1200 Subject: [PATCH] CICD: Add Script to Find the Changeset ID for a CICD Release Number. Add a script that finds the changeset ID in the subsurface repository that a given CICD release was built from. The option '-c' can be used to check out the changeset, if one is found. Signed-off-by: Michael Keller --- scripts/get-changeset-id.sh | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 scripts/get-changeset-id.sh diff --git a/scripts/get-changeset-id.sh b/scripts/get-changeset-id.sh new file mode 100755 index 000000000..eb996deb9 --- /dev/null +++ b/scripts/get-changeset-id.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +# +# find the changeset id for a given CICD release number +# and optionally checkout the resulting changeset +# +# +# we ignore the base version here - all that is expected is the 'patch' part of the version + +# little silly helper functions +croak() { + echo "$0: $*" >&2 + exit 1 +} +croak_usage() { + croak "Usage: $0 [-c]" +} + +if [[ $# -gt 2 ]] ; then croak_usage ; fi +CICD_VERSION=$1 +if [[ $# -eq 2 ]] ; then + if [[ $2 != "-c" ]] ; then croak_usage ; fi + DO_CHECKOUT=1 +fi + +# figure out where we are in the file system +pushd . &> /dev/null +cd "$(dirname "$0")/../" +pushd . &> /dev/null + +if [ ! -d "./nightly-builds" ] ; then + git clone https://github.com/subsurface/nightly-builds &> /dev/null || croak "failed to clone nightly-builds repo" +fi +cd nightly-builds +git fetch &> /dev/null + +BUILD_SHA="" +BUILD_BRANCHES=$(git branch -a --sort=-committerdate --list origin/branch-for-\* | cut -d/ -f3) +for BUILD_BRANCH in $BUILD_BRANCHES ; do + git checkout $BUILD_BRANCH &> /dev/null + if [[ $(<./latest-subsurface-buildnumber) == $CICD_VERSION ]]; then + BUILD_SHA=$(cut -d- -f 3 <<< "$BUILD_BRANCH") + break + fi +done + +popd &> /dev/null + +printf '%s' "$BUILD_SHA" + +if [[ "$DO_CHECKOUT" == "1" && $BUILD_SHA != "" ]]; then + git checkout $BUILD_SHA &> /dev/null +fi + +popd &> /dev/null