diff --git a/.github/workflows/build-and-push-call-example.yml b/.github/workflows/build-and-push-call-example.yaml similarity index 100% rename from .github/workflows/build-and-push-call-example.yml rename to .github/workflows/build-and-push-call-example.yaml diff --git a/.github/workflows/build-and-push.yml b/.github/workflows/build-and-push.yaml similarity index 69% rename from .github/workflows/build-and-push.yml rename to .github/workflows/build-and-push.yaml index 3223cbe..8d32a8b 100644 --- a/.github/workflows/build-and-push.yml +++ b/.github/workflows/build-and-push.yaml @@ -12,6 +12,10 @@ on: description: Full image name including registry (defaults to REGISTRY/repo) type: string default: "" + tag: + description: Override image tag (defaults to standard tags) + type: string + default: "" dockerfile: description: Path to Dockerfile type: string @@ -44,6 +48,7 @@ jobs: env: REGISTRY: ${{ inputs.registry != '' && inputs.registry || secrets.REGISTRY }} IMAGE_NAME: ${{ inputs.image_name }} + TAG_INPUT: ${{ inputs.tag }} REPO: ${{ gitea.repository }} steps: - name: Checkout repository @@ -84,50 +89,55 @@ jobs: id: vars run: | IMAGE="${IMAGE_NAME}" - TAG_NAME="" - REF="${GITHUB_REF:-${GITEA_REF}}" - SHA="${GITHUB_SHA:-${GITEA_SHA}}" - BRANCH="" - SHORT_SHA="$(git rev-parse --short=7 "${SHA}")" TAGS=() - # Extract tag name when we are on a tag ref (e.g. v1.4) - if [[ "${REF}" =~ refs/tags/(.+) ]]; then - TAG_NAME="${BASH_REMATCH[1]}" - fi - - if [[ "${REF}" =~ refs/heads/(.+) ]]; then - BRANCH="${BASH_REMATCH[1]}" + if [ -n "${TAG_INPUT}" ]; then + TAGS+=("${IMAGE}:${TAG_INPUT}") else - # Tag build: detect which branch contains the tagged commit - git fetch --no-tags --depth=1 origin main release develop || true - if git branch -r --contains "${SHA}" | grep -q "origin/main"; then - BRANCH="main" - elif git branch -r --contains "${SHA}" | grep -q "origin/release"; then - BRANCH="release" - elif git branch -r --contains "${SHA}" | grep -q "origin/develop"; then - BRANCH="develop" + TAG_NAME="" + REF="${GITHUB_REF:-${GITEA_REF}}" + SHA="${GITHUB_SHA:-${GITEA_SHA}}" + BRANCH="" + SHORT_SHA="$(git rev-parse --short=7 "${SHA}")" + + # Extract tag name when we are on a tag ref (e.g. v1.4) + if [[ "${REF}" =~ refs/tags/(.+) ]]; then + TAG_NAME="${BASH_REMATCH[1]}" fi + + if [[ "${REF}" =~ refs/heads/(.+) ]]; then + BRANCH="${BASH_REMATCH[1]}" + else + # Tag build: detect which branch contains the tagged commit + git fetch --no-tags --depth=1 origin main release develop || true + if git branch -r --contains "${SHA}" | grep -q "origin/main"; then + BRANCH="main" + elif git branch -r --contains "${SHA}" | grep -q "origin/release"; then + BRANCH="release" + elif git branch -r --contains "${SHA}" | grep -q "origin/develop"; then + BRANCH="develop" + fi + fi + + TAGS+=("${IMAGE}:${SHORT_SHA}") + [[ -n "${TAG_NAME}" ]] && TAGS+=("${IMAGE}:${TAG_NAME}") + + case "${BRANCH}" in + main) + TAGS+=("${IMAGE}:latest") + ;; + release*) + TAGS+=("${IMAGE}:latest-rc") + ;; + develop) + TAGS+=("${IMAGE}:latest-dev") + ;; + *) + TAGS+=("${IMAGE}:latest-snapshot") + ;; + esac fi - TAGS+=("${IMAGE}:${SHORT_SHA}") - [[ -n "${TAG_NAME}" ]] && TAGS+=("${IMAGE}:${TAG_NAME}") - - case "${BRANCH}" in - main) - TAGS+=("${IMAGE}:latest") - ;; - release*) - TAGS+=("${IMAGE}:latest-rc") - ;; - develop) - TAGS+=("${IMAGE}:latest-dev") - ;; - *) - TAGS+=("${IMAGE}:latest-snapshot") - ;; - esac - echo "Computed tags:" printf '%s\n' "${TAGS[@]}" { diff --git a/.github/workflows/deploy-k8s.yml b/.github/workflows/deploy-k8s.yaml similarity index 100% rename from .github/workflows/deploy-k8s.yml rename to .github/workflows/deploy-k8s.yaml