diff --git a/hack/scripts/gen-ver.sh b/hack/scripts/gen-ver.sh index ddf57415..8b48c052 100755 --- a/hack/scripts/gen-ver.sh +++ b/hack/scripts/gen-ver.sh @@ -14,24 +14,25 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -x +# optional tag prefix to handle versions like: +# cmd/cli/v0.1.44 -> v0.1.44 +# docker-v29.0.0 -> v29.0.0 +: "${TAGPREFIX:=}" + srcdir="$1" if [ -z "$srcdir" ]; then echo "usage: ./gen-ver " >&2 exit 1 fi -version=$(git -C "${srcdir}" describe --match 'v[0-9]*' --always --tags) +tagregex="${TAGPREFIX}v[0-9]*" +version=$(git -C "${srcdir}" describe --match "$tagregex" --tags) commit="$(git --git-dir "${srcdir}/.git" rev-parse HEAD)" commitShort=${commit:0:7} -# Handle prefixed version formats -# cmd/cli/v0.1.44 -> v0.1.44 -if [[ "$version" =~ .*/v[0-9] ]]; then - version="${version##*/}" -fi -# docker-v29.0.0 -> v29.0.0 -if [[ "$version" =~ ^docker-v[0-9] ]]; then - version="${version#docker-}" +if [ -n "$TAGPREFIX" ]; then + version="${version#$TAGPREFIX}" fi # rpm "Release:" field ($rpmRelease) is used to set the "_release" macro, which diff --git a/pkg/buildx/scripts/pkg-deb-build.sh b/pkg/buildx/scripts/pkg-deb-build.sh index 7568ea1f..986f0a68 100755 --- a/pkg/buildx/scripts/pkg-deb-build.sh +++ b/pkg/buildx/scripts/pkg-deb-build.sh @@ -32,6 +32,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/buildx/scripts/pkg-rpm-build.sh b/pkg/buildx/scripts/pkg-rpm-build.sh index 6aeafb74..6dfd47a4 100755 --- a/pkg/buildx/scripts/pkg-rpm-build.sh +++ b/pkg/buildx/scripts/pkg-rpm-build.sh @@ -31,6 +31,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/buildx/scripts/pkg-static-build.sh b/pkg/buildx/scripts/pkg-static-build.sh index 579e785a..a2389d82 100755 --- a/pkg/buildx/scripts/pkg-static-build.sh +++ b/pkg/buildx/scripts/pkg-static-build.sh @@ -22,6 +22,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$OUTDIR" ]; then diff --git a/pkg/compose/scripts/pkg-deb-build.sh b/pkg/compose/scripts/pkg-deb-build.sh index 55149fda..268f1f3b 100755 --- a/pkg/compose/scripts/pkg-deb-build.sh +++ b/pkg/compose/scripts/pkg-deb-build.sh @@ -32,6 +32,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/compose/scripts/pkg-rpm-build.sh b/pkg/compose/scripts/pkg-rpm-build.sh index 6aeafb74..6dfd47a4 100755 --- a/pkg/compose/scripts/pkg-rpm-build.sh +++ b/pkg/compose/scripts/pkg-rpm-build.sh @@ -31,6 +31,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/compose/scripts/pkg-static-build.sh b/pkg/compose/scripts/pkg-static-build.sh index 92849a17..a59ee7bb 100755 --- a/pkg/compose/scripts/pkg-static-build.sh +++ b/pkg/compose/scripts/pkg-static-build.sh @@ -22,6 +22,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$OUTDIR" ]; then diff --git a/pkg/containerd/scripts/pkg-deb-build.sh b/pkg/containerd/scripts/pkg-deb-build.sh index 6812480f..f45f72b1 100755 --- a/pkg/containerd/scripts/pkg-deb-build.sh +++ b/pkg/containerd/scripts/pkg-deb-build.sh @@ -32,6 +32,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/containerd/scripts/pkg-rpm-build.sh b/pkg/containerd/scripts/pkg-rpm-build.sh index 0c6c7eb2..2a2dc918 100755 --- a/pkg/containerd/scripts/pkg-rpm-build.sh +++ b/pkg/containerd/scripts/pkg-rpm-build.sh @@ -31,6 +31,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/containerd/scripts/pkg-static-build.sh b/pkg/containerd/scripts/pkg-static-build.sh index e38ad49c..3ed0591a 100755 --- a/pkg/containerd/scripts/pkg-static-build.sh +++ b/pkg/containerd/scripts/pkg-static-build.sh @@ -26,6 +26,8 @@ : "${LIBSECCOMP_SRCDIR=/work/libseccomp-src}" : "${RUNHCS_SRCDIR=/work/runhcs-src}" +: "${TAGPREFIX=}" + set -e if [ -z "$OUTDIR" ]; then diff --git a/pkg/credential-helpers/scripts/pkg-deb-build.sh b/pkg/credential-helpers/scripts/pkg-deb-build.sh index a31254a8..fee31d82 100755 --- a/pkg/credential-helpers/scripts/pkg-deb-build.sh +++ b/pkg/credential-helpers/scripts/pkg-deb-build.sh @@ -32,6 +32,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/credential-helpers/scripts/pkg-rpm-build.sh b/pkg/credential-helpers/scripts/pkg-rpm-build.sh index aad99679..df01904e 100755 --- a/pkg/credential-helpers/scripts/pkg-rpm-build.sh +++ b/pkg/credential-helpers/scripts/pkg-rpm-build.sh @@ -31,6 +31,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/credential-helpers/scripts/pkg-static-build.sh b/pkg/credential-helpers/scripts/pkg-static-build.sh index 02f42e63..2525a157 100755 --- a/pkg/credential-helpers/scripts/pkg-static-build.sh +++ b/pkg/credential-helpers/scripts/pkg-static-build.sh @@ -22,6 +22,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$OUTDIR" ]; then diff --git a/pkg/docker-cli/scripts/pkg-deb-build.sh b/pkg/docker-cli/scripts/pkg-deb-build.sh index 66087cd1..080aaf1b 100755 --- a/pkg/docker-cli/scripts/pkg-deb-build.sh +++ b/pkg/docker-cli/scripts/pkg-deb-build.sh @@ -32,6 +32,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/docker-cli/scripts/pkg-rpm-build.sh b/pkg/docker-cli/scripts/pkg-rpm-build.sh index 6aeafb74..6dfd47a4 100755 --- a/pkg/docker-cli/scripts/pkg-rpm-build.sh +++ b/pkg/docker-cli/scripts/pkg-rpm-build.sh @@ -31,6 +31,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/docker-cli/scripts/pkg-static-build.sh b/pkg/docker-cli/scripts/pkg-static-build.sh index 8c76d73d..3beb0250 100755 --- a/pkg/docker-cli/scripts/pkg-static-build.sh +++ b/pkg/docker-cli/scripts/pkg-static-build.sh @@ -22,6 +22,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$OUTDIR" ]; then diff --git a/pkg/docker-engine/scripts/pkg-deb-build.sh b/pkg/docker-engine/scripts/pkg-deb-build.sh index 06f128f9..d03e0335 100755 --- a/pkg/docker-engine/scripts/pkg-deb-build.sh +++ b/pkg/docker-engine/scripts/pkg-deb-build.sh @@ -32,6 +32,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/docker-engine/scripts/pkg-rpm-build.sh b/pkg/docker-engine/scripts/pkg-rpm-build.sh index 3a5470f4..883ec0dc 100755 --- a/pkg/docker-engine/scripts/pkg-rpm-build.sh +++ b/pkg/docker-engine/scripts/pkg-rpm-build.sh @@ -31,6 +31,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$DISTRO_NAME" ]; then diff --git a/pkg/docker-engine/scripts/pkg-static-build.sh b/pkg/docker-engine/scripts/pkg-static-build.sh index cf13a5e6..219da10d 100755 --- a/pkg/docker-engine/scripts/pkg-static-build.sh +++ b/pkg/docker-engine/scripts/pkg-static-build.sh @@ -22,6 +22,8 @@ : "${SRCDIR=/work/src}" : "${OUTDIR=/out}" +: "${TAGPREFIX=}" + set -e if [ -z "$OUTDIR" ]; then diff --git a/pkg/model/Dockerfile b/pkg/model/Dockerfile index d7d07547..365e95c5 100644 --- a/pkg/model/Dockerfile +++ b/pkg/model/Dockerfile @@ -32,6 +32,8 @@ ARG GO_IMAGE="golang" ARG GO_VERSION=1.24.8 ARG GO_IMAGE_VARIANT="bookworm" +ARG TAGPREFIX="cmd/cli/" + # stage used as named context that mounts hack/scripts # see pkg target in docker-bake.hcl FROM scratch AS scripts @@ -63,6 +65,7 @@ FROM src-base AS metadata-builder ARG PKG_REPO ARG PKG_REF ARG NIGHTLY_BUILD +ARG TAGPREFIX RUN --mount=type=bind,from=scripts,source=gen-ver.sh,target=/usr/local/bin/gen-ver \ --mount=type=bind,from=src,source=/src,target=/src <