8
8
workflow_dispatch :
9
9
10
10
env :
11
- PACKAGE : docker-tag-updater
11
+ PACKAGE : ${{ vars.PACKAGE || github.event.repository.name }}
12
+ ACTOR : ${{ vars.ORGANISATION || github.actor }}
12
13
13
14
jobs :
14
15
build-and-push :
15
16
runs-on : ubuntu-latest
16
17
permissions :
17
18
contents : read
18
19
packages : write
19
- container : catthehacker/ubuntu:act-latest
20
20
steps :
21
21
- name : Check if Registry details are available
22
22
env :
@@ -26,55 +26,48 @@ jobs:
26
26
27
27
- name : Checkout
28
28
uses : actions/checkout@v2
29
-
30
- - name : Get current tag
31
- id : get-current-tag
32
- uses : zingimmick/github-action-get-current-tag@v1
29
+ with :
30
+ fetch-depth : 0
33
31
34
32
- name : Set up Docker Buildx
35
- uses : docker/setup-buildx-action@v1
33
+ uses : docker/setup-buildx-action@v3
34
+
35
+ - name : Docker metadata
36
+ id : meta
37
+ uses : docker/metadata-action@v5
38
+ env :
39
+ FORGE_REGISTRY_URL : ${{ secrets.FORGE_REGISTRY_URL }}
40
+ with :
41
+ images : |
42
+ name=${{ env.FORGE_REGISTRY_URL }}/${{ env.ACTOR }}/${{ env.PACKAGE }}
43
+ tags : |
44
+ type=semver,pattern=v{{version}}
45
+ type=semver,pattern=v{{major}}
46
+ type=semver,pattern=v{{major}}.{{minor}}
47
+ type=semver,pattern=v{{major}}.{{minor}}.{{patch}}
48
+ type=sha
49
+ labels : |
50
+ org.opencontainers.image.authors=${{ vars.MY_NAME || env.ACTOR }} <${{ vars.MY_EMAIL }}>
51
+ annotations : |
52
+ org.opencontainers.image.authors=${{ vars.MY_NAME || env.ACTOR }} <${{ vars.MY_EMAIL }}>
36
53
37
54
- name : Login to Forge registry
38
- uses : docker/login-action@v1
55
+ uses : docker/login-action@v3
39
56
env :
40
57
FORGE_REGISTRY_URL : ${{ secrets.FORGE_REGISTRY_URL }}
41
58
if : ${{ env.FORGE_REGISTRY_URL }}
42
59
id : login-forge
43
60
with :
44
- registry : ${{ secrets .FORGE_REGISTRY_URL }}
61
+ registry : ${{ env .FORGE_REGISTRY_URL }}
45
62
username : ${{ github.actor }}
46
63
password : ${{ secrets.FORGE_REGISTRY_PAT || secrets.GITHUB_TOKEN }}
47
64
48
65
- name : Build and push to Forge
49
66
uses : docker/build-push-action@v2
50
- env :
51
- FORGE_REGISTRY_URL : ${{ secrets.FORGE_REGISTRY_URL }}
52
67
with :
53
68
context : .
54
69
builder : ${{ steps.buildx.outputs.name }}
55
70
push : true
56
- tags : |
57
- ${{ env.FORGE_REGISTRY_URL }}/${{ github.actor }}/${{ env.PACKAGE }}:latest
58
- ${{ env.FORGE_REGISTRY_URL }}/${{ github.actor }}/${{ env.PACKAGE }}:${{ steps.get-current-tag.outputs.tag }}
59
-
60
- - name : Login to private registry
61
- uses : docker/login-action@v1
62
- id : login-private
63
- env :
64
- PRIVATE_REGISTRY_URL : ${{ secrets.PRIVATE_REGISTRY_URL }}
65
- if : ${{ env.PRIVATE_REGISTRY_URL }}
66
- with :
67
- registry : ${{ secrets.PRIVATE_REGISTRY_URL }}
68
- username : ${{ secrets.PRIVATE_REGISTRY_USERNAME }}
69
- password : ${{ secrets.PRIVATE_REGISTRY_PASSWORD }}
70
-
71
- - name : Push to private registry
72
- env :
73
- PRIVATE_REGISTRY_URL : ${{ secrets.PRIVATE_REGISTRY_URL }}
74
- PRIVATE_REGISTRY_USERNAME : ${{ secrets.PRIVATE_REGISTRY_USERNAME }}
75
- if : ${{ env.PRIVATE_REGISTRY_URL && success() }}
76
- run : >
77
- docker buildx imagetools create
78
- -- tag ${{ env.PRIVATE_REGISTRY_URL }}/${{ env.PRIVATE_REGISTRY_USERNAME }}/${{ env.PACKAGE }}:latest
79
- -- tag ${{ env.PRIVATE_REGISTRY_URL }}/${{ env.PRIVATE_REGISTRY_USERNAME }}/${{ env.PACKAGE }}:${{ steps.get-current-tag.outputs.tag }}
80
- ${{ secrets.FORGE_REGISTRY_URL }}/${{ github.actor }}/${{ env.PACKAGE }}:${{ steps.get-current-tag.outputs.tag }}
71
+ tags : ${{ steps.meta.outputs.tags }}
72
+ labels : ${{ steps.meta.outputs.labels }}
73
+ annotations : ${{ steps.meta.outputs.annotations }}
0 commit comments