Skip to content

Commit c51dfdc

Browse files
committed
Switch CI tagging to docker/metadata-action
1 parent b93ca70 commit c51dfdc

File tree

1 file changed

+13
-33
lines changed

1 file changed

+13
-33
lines changed

.github/workflows/ci.yml

Lines changed: 13 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -57,36 +57,16 @@ jobs:
5757
echo "sanitized=${VERSION}" >> "$GITHUB_OUTPUT"
5858
fi
5959
60-
- name: Compute image tags
61-
id: tags
62-
run: |
63-
IMAGE=${{ env.IMAGE_NAME }}
64-
SHORT_SHA=${GITHUB_SHA::12}
65-
PRIMARY_TAG="$IMAGE:sha-$SHORT_SHA"
66-
TAGS=()
67-
TAGS+=("$PRIMARY_TAG")
68-
69-
if [[ "${GITHUB_REF_TYPE}" == "branch" ]]; then
70-
SAFE_BRANCH=$(echo "${GITHUB_REF_NAME}" | tr '[:upper:]' '[:lower:]' | tr -c 'a-z0-9' '-' | sed 's/-\{2,\}/-/g; s/^-//; s/-$//')
71-
if [[ -z "$SAFE_BRANCH" ]]; then
72-
SAFE_BRANCH="sha-$SHORT_SHA"
73-
fi
74-
TAGS+=("$IMAGE:branch-$SAFE_BRANCH")
75-
if [[ "${GITHUB_REF_NAME}" == "main" ]]; then
76-
VERSION=${{ steps.version.outputs.sanitized }}
77-
TAGS+=("$IMAGE:$VERSION" "$IMAGE:latest")
78-
fi
79-
elif [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
80-
TAGS+=("$IMAGE:${GITHUB_REF_NAME}")
81-
PRIMARY_TAG="$IMAGE:${GITHUB_REF_NAME}"
82-
fi
83-
84-
{
85-
echo "list<<EOF"
86-
printf '%s\n' "${TAGS[@]}"
87-
echo "EOF"
88-
echo "primary=$PRIMARY_TAG"
89-
} >> "$GITHUB_OUTPUT"
60+
- name: Docker metadata
61+
id: meta
62+
uses: docker/metadata-action@v5
63+
with:
64+
images: ${{ env.IMAGE_NAME }}
65+
tags: |
66+
type=sha,prefix=sha-
67+
type=ref,event=branch
68+
type=raw,value=${{ steps.version.outputs.sanitized }},enable=${{ github.ref == 'refs/heads/main' }}
69+
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
9070
9171
- name: Login to Docker Hub
9272
if: github.event_name == 'push'
@@ -105,15 +85,15 @@ jobs:
10585
context: .
10686
push: ${{ github.event_name == 'push' }}
10787
load: true
108-
tags: |
109-
${{ steps.tags.outputs.list }}
88+
tags: ${{ steps.meta.outputs.tags }}
89+
labels: ${{ steps.meta.outputs.labels }}
11090
cache-from: type=gha
11191
cache-to: type=gha,mode=max
11292

11393
- name: Generate SBOM
11494
uses: anchore/sbom-action@v0
11595
with:
116-
image: ${{ steps.tags.outputs.primary }}
96+
image: ${{ fromJSON(steps.meta.outputs.json).tags[0] }}
11797
format: spdx-json
11898
output-file: sbom.spdx.json
11999

0 commit comments

Comments
 (0)