Skip to content

Commit afec03f

Browse files
committed
ci: make docker-imager workflow less hard-coded, upgrade actions
1 parent b8d8294 commit afec03f

File tree

1 file changed

+29
-36
lines changed

1 file changed

+29
-36
lines changed

Diff for: .github/workflows/docker-imager.yaml

+29-36
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ on:
88
workflow_dispatch:
99

1010
env:
11-
PACKAGE: docker-tag-updater
11+
PACKAGE: ${{ vars.PACKAGE || github.event.repository.name }}
12+
ACTOR: ${{ vars.ORGANISATION || github.actor }}
1213

1314
jobs:
1415
build-and-push:
1516
runs-on: ubuntu-latest
1617
permissions:
1718
contents: read
1819
packages: write
19-
container: catthehacker/ubuntu:act-latest
2020
steps:
2121
- name: Check if Registry details are available
2222
env:
@@ -26,55 +26,48 @@ jobs:
2626

2727
- name: Checkout
2828
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
3331

3432
- 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 }}>
3653
3754
- name: Login to Forge registry
38-
uses: docker/login-action@v1
55+
uses: docker/login-action@v3
3956
env:
4057
FORGE_REGISTRY_URL: ${{ secrets.FORGE_REGISTRY_URL }}
4158
if: ${{ env.FORGE_REGISTRY_URL }}
4259
id: login-forge
4360
with:
44-
registry: ${{ secrets.FORGE_REGISTRY_URL }}
61+
registry: ${{ env.FORGE_REGISTRY_URL }}
4562
username: ${{ github.actor }}
4663
password: ${{ secrets.FORGE_REGISTRY_PAT || secrets.GITHUB_TOKEN }}
4764

4865
- name: Build and push to Forge
4966
uses: docker/build-push-action@v2
50-
env:
51-
FORGE_REGISTRY_URL: ${{ secrets.FORGE_REGISTRY_URL }}
5267
with:
5368
context: .
5469
builder: ${{ steps.buildx.outputs.name }}
5570
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

Comments
 (0)