From 824199efea7616e75384d5628036a071ee79aef2 Mon Sep 17 00:00:00 2001 From: Jeremi Piotrowski Date: Wed, 13 Oct 2021 10:12:45 +0200 Subject: [PATCH] jenkins/manifest: accept PR numbers in PORTAGE_REF/OVERLAY_REF When PORTAGE_REF or OVERLAY_REF are numbers, we can change the way the refspec is constructed to allow fetching a PR instead instead of a branch. Checking for equality using '[' works to detect numbers, bash's '[[' doesn't. Signed-off-by: Jeremi Piotrowski --- jenkins/manifest.sh | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/jenkins/manifest.sh b/jenkins/manifest.sh index 5841905d84..c61df5cf55 100755 --- a/jenkins/manifest.sh +++ b/jenkins/manifest.sh @@ -95,20 +95,34 @@ set_manifest_ref() { local reference="$2" # Select lines with "/$reponame" (kept as first group) and "revision" (kept as second group) and replace the value # of "revision" (third group, not kept) with the new reference. - sed -i -E "s#(/$reponame.*)(revision=\")([^\"]*)#\1\2refs/heads/$reference#g" "manifest/${FLATCAR_BUILD_ID}.xml" + sed -i -E "s#(/$reponame.*)(revision=\")([^\"]*)#\1\2$reference#g" "manifest/${FLATCAR_BUILD_ID}.xml" } if [[ -n "${SCRIPTS_REF}" ]] then - set_manifest_ref scripts "${SCRIPTS_REF}" + set_manifest_ref scripts "refs/heads/${SCRIPTS_REF}" fi if [[ -n "${OVERLAY_REF}" ]] then - set_manifest_ref coreos-overlay "${OVERLAY_REF}" + prefix="refs/heads/" + suffix="" + # treat numbers as PR refs + if [ "${OVERLAY_REF}" -eq "${OVERLAY_REF}" ] 2>/dev/null; then + prefix="refs/pull/" + suffix="/head" + fi + set_manifest_ref coreos-overlay "$prefix${OVERLAY_REF}$suffix" fi if [[ -n "${PORTAGE_REF}" ]] then - set_manifest_ref portage-stable "${PORTAGE_REF}" + prefix="refs/heads/" + suffix="" + # treat numbers as PR refs + if [ "${PORTAGE_REF}" -eq "${PORTAGE_REF}" ] 2>/dev/null; then + prefix="refs/pull/" + suffix="/head" + fi + set_manifest_ref portage-stable "$prefix${PORTAGE_REF}$suffix" fi ln -fns "${FLATCAR_BUILD_ID}.xml" manifest/default.xml