@@ -9,8 +9,8 @@ on: # yamllint disable-line rule:truthy
99 workflow_dispatch :
1010 inputs :
1111 tag :
12- description : Docker image tag
13- required : true
12+ description : Docker image tag (optional, defaults to Git ref)
13+ required : false
1414 type : string
1515
1616jobs :
@@ -21,12 +21,21 @@ jobs:
2121 - uses : actions/checkout@v4
2222 - name : Build Docker image
2323 run : |
24- IMAGE="ghcr.io/$GITHUB_REPOSITORY:${DOCKER_TAG/'/'/'-'}"
24+ DOCKER_TAG="${DOCKER_TAG/'/'/'-'}"
25+ DOCKER_TAG_MAJOR=$(echo "$DOCKER_TAG" | cut -d '.' -f 1)
26+ DOCKER_TAG_MAJOR_MINOR=$(echo "$DOCKER_TAG" | cut -d '.' -f 1-2)
27+ IMAGE="ghcr.io/$GITHUB_REPOSITORY:${DOCKER_TAG}"
28+ IMAGE_MAJOR="ghcr.io/$GITHUB_REPOSITORY:${DOCKER_TAG_MAJOR}"
29+ IMAGE_MAJOR_MINOR="ghcr.io/$GITHUB_REPOSITORY:${DOCKER_TAG_MAJOR_MINOR}"
2530 echo "IMAGE=$IMAGE" >>"$GITHUB_ENV"
31+ echo "IMAGE_MAJOR=$IMAGE_MAJOR" >>"$GITHUB_ENV"
32+ echo "IMAGE_MAJOR_MINOR=$IMAGE_MAJOR_MINOR" >>"$GITHUB_ENV"
2633 docker build . \
2734 --build-arg BUILDKIT_INLINE_CACHE=1 \
2835 --cache-from $IMAGE \
2936 --tag $IMAGE
37+ docker tag $IMAGE $IMAGE_MAJOR
38+ docker tag $IMAGE $IMAGE_MAJOR_MINOR
3039 env :
3140 DOCKER_TAG : ${{ inputs.tag || github.ref_name }}
3241 - name : Log in to GHCR
3645 docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
3746 - name : Push Docker image to GHCR
3847 if : github.event_name != 'pull_request'
39- run : docker push $IMAGE
48+ run : |
49+ docker push $IMAGE
50+ docker push $IMAGE_MAJOR
51+ docker push $IMAGE_MAJOR_MINOR
0 commit comments