diff --git a/docker-bake.hcl b/docker-bake.hcl index d0c7cf29d4..46b110e45f 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -47,6 +47,18 @@ variable "PACKAGER_NAME" { default = "" } +# GITHUB_REF is the actual ref that triggers the workflow and used as version +# when tag is pushed: https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables +variable "GITHUB_REF" { + default = "" +} + +# GITHUB_SHA is the commit SHA that triggered the workflow and used as commit. +# https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables +variable "GITHUB_SHA" { + default = "" +} + # Defines the output folder variable "DESTDIR" { default = "" @@ -64,8 +76,8 @@ target "_common" { DOCKER_STATIC = DOCKER_STATIC DOCKER_LDFLAGS = DOCKER_LDFLAGS DOCKER_BUILDTAGS = DOCKER_BUILDTAGS - DOCKER_GITCOMMIT = DOCKER_GITCOMMIT - VERSION = VERSION + DOCKER_GITCOMMIT = DOCKER_GITCOMMIT != "" ? DOCKER_GITCOMMIT : GITHUB_SHA + VERSION = VERSION != "" ? VERSION : GITHUB_REF PLATFORM = PLATFORM PRODUCT = PRODUCT DEFAULT_PRODUCT_LICENSE = DEFAULT_PRODUCT_LICENSE diff --git a/hack/make.sh b/hack/make.sh index 4853f63d17..a420d3a9ad 100755 --- a/hack/make.sh +++ b/hack/make.sh @@ -39,6 +39,14 @@ DEFAULT_BUNDLES=( ) VERSION=${VERSION:-dev} +if [[ $VERSION == refs/tags/* ]]; then + VERSION=${VERSION#refs/tags/} +elif [[ $VERSION == refs/heads/* ]]; then + VERSION=$(sed <<< "${VERSION#refs/heads/}" -r 's#/+#-#g') +elif [[ $VERSION == refs/pull/* ]]; then + VERSION=pr-$(grep <<< "$VERSION" -o '[0-9]\+') +fi + ! BUILDTIME=$(date -u -d "@${SOURCE_DATE_EPOCH:-$(date +%s)}" --rfc-3339 ns 2> /dev/null | sed -e 's/ /T/') if [ "$DOCKER_GITCOMMIT" ]; then GITCOMMIT="$DOCKER_GITCOMMIT"