@@ -9,8 +9,8 @@ on: # yamllint disable-line rule:truthy
9
9
workflow_dispatch :
10
10
inputs :
11
11
tag :
12
- description : Docker image tag
13
- required : true
12
+ description : Docker image tag (optional, defaults to Git ref)
13
+ required : false
14
14
type : string
15
15
16
16
jobs :
@@ -21,12 +21,21 @@ jobs:
21
21
- uses : actions/checkout@v4
22
22
- name : Build Docker image
23
23
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}"
25
30
echo "IMAGE=$IMAGE" >>"$GITHUB_ENV"
31
+ echo "IMAGE_MAJOR=$IMAGE_MAJOR" >>"$GITHUB_ENV"
32
+ echo "IMAGE_MAJOR_MINOR=$IMAGE_MAJOR_MINOR" >>"$GITHUB_ENV"
26
33
docker build . \
27
34
--build-arg BUILDKIT_INLINE_CACHE=1 \
28
35
--cache-from $IMAGE \
29
36
--tag $IMAGE
37
+ docker tag $IMAGE $IMAGE_MAJOR
38
+ docker tag $IMAGE $IMAGE_MAJOR_MINOR
30
39
env :
31
40
DOCKER_TAG : ${{ inputs.tag || github.ref_name }}
32
41
- name : Log in to GHCR
36
45
docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
37
46
- name : Push Docker image to GHCR
38
47
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