@@ -36,63 +36,107 @@ jobs:
3636 - name : Log in to Docker Hub
3737 uses : docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
3838 with :
39- username : ${{ secrets.DOCKER_IO_USERNAME }}
40- password : ${{ secrets.DOCKER_IO_PASSWORD }}
4139
40+ username : ${{ secrets.DOCKER_USERNAME }}
41+ password : ${{ secrets.DOCKER_PASSWORD }}
4242
43- - name : Log in to GitHub Container Registry
43+
44+
45+ - name : Log in to GitHub container registry
4446 uses : docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
4547 with :
4648 registry : ghcr.io
47- username : ${{ github.repository_owner }}
49+
50+ username : ${{ github.actor }}
4851 password : ${{ secrets.GITHUB_TOKEN }}
4952
50- - name : Extract metadata for Docker
51- id : meta
52- uses : docker/metadata-action@38b8a86137171c128513e9be0b97bc476fbffcb5 # v5.6.0
53+
54+ - name : " (all target): Extract metadata (tags, labels) for Docker"
55+ id : meta-all
56+ uses : docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
5357 with :
54- images : |
55- ghcr.io/helmut-hoffer-von-ankershoffen/oe-python-template-example
5658
59+
60+ images : |
5761 ${{ env.DOCKER_IO_IMAGE_NAME_ALL }}
62+ ghcr.io/${{ github.repository }}
63+
64+
5865
59- flavor : |
60- latest=auto
61- prefix=
62- suffix=
6366 tags : |
64- type=semver,pattern=v
65- type=semver,pattern=v.
66- type=semver,pattern=v
67+ # set latest tag for releases
68+ type=raw,value=latest
69+ # set semver tags from git tags (v1.2.3 -> 1.2.3, 1.2, 1)
70+ type=semver,pattern={{version}}
71+ type=semver,pattern={{major}}.{{minor}}
72+ type=semver,pattern={{major}}
73+
74+
75+ - name : " (slim target): Extract metadata (tags, labels) for Docker"
76+ id : meta-slim
77+ uses : docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
78+ with :
79+
80+
81+ images : |
82+ ${{ env.DOCKER_IO_IMAGE_NAME_SLIM }}
83+ ghcr.io/${{ github.repository }}-slim
84+
85+
86+
87+ tags : |
88+ # set latest tag for releases
89+ type=raw,value=latest
90+ # set semver tags from git tags (v1.2.3 -> 1.2.3, 1.2, 1)
91+ type=semver,pattern={{version}}
92+ type=semver,pattern={{major}}.{{minor}}
93+ type=semver,pattern={{major}}
94+
95+
6796
68- - name : Build and push Docker image (all)
69- uses : docker/build-push-action@e6ef1f314e8a75f35e85dbd71ebe08d4b3005fc8 # v6.2.0
97+ - name : " (all target): Build and push Docker image"
98+ id : build-and-push-all
99+ uses : docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
70100 with :
71101 context : .
72- push : true
73- tags : ${{ steps.meta.outputs.tags }}
74- labels : ${{ steps.meta.outputs.labels }}
75- platforms : linux/amd64,linux/arm64
102+ file : ./Dockerfile
76103 target : all
77- provenance : true
78- cache-from : type=gha
79- cache-to : type=gha,mode=max
104+ platforms : linux/amd64,linux/arm64
105+ push : true
106+ tags : ${{ steps.meta-all.outputs.tags }}
107+ labels : ${{ steps.meta-all.outputs.labels }}
108+
80109
81- - name : Build and push Docker image (slim)
82- uses : docker/build-push-action@e6ef1f314e8a75f35e85dbd71ebe08d4b3005fc8 # v6.2.0
110+
111+ - name : " (slim target): Build and push Docker image"
112+ id : build-and-push-slim
113+ uses : docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
83114 with :
84115 context : .
116+ file : ./Dockerfile
117+ target : slim
118+ platforms : linux/amd64,linux/arm64
85119 push : true
86- tags : |
87- ghcr.io/helmut-hoffer-von-ankershoffen/oe-python-template-example-slim:latest
88- ghcr.io/helmut-hoffer-von-ankershoffen/oe-python-template-example-slim:${{ github.ref_name }}
120+ tags : ${{ steps.meta-slim.outputs.tags }}
121+ labels : ${{ steps.meta-slim.outputs.labels }}
89122
90- ${{ env.DOCKER_IO_IMAGE_NAME_SLIM }}:latest
91- ${{ env.DOCKER_IO_IMAGE_NAME_SLIM }}:${{ github.ref_name }}
92123
93- labels : ${{ steps.meta.outputs.labels }}
94- platforms : linux/amd64,linux/arm64
95- target : slim
96- provenance : true
97- cache-from : type=gha
98- cache-to : type=gha,mode=max
124+
125+
126+
127+ - name : " (all target): Generate artifact attestation"
128+ uses : actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
129+ with :
130+ subject-name : ${{ env.DOCKER_IO_REGISTRY }}/${{ env.DOCKER_IO_IMAGE_NAME_ALL }}
131+ subject-digest : ${{ steps.build-and-push-all.outputs.digest }}
132+ push-to-registry : true
133+
134+
135+
136+
137+ - name : " (slim target): Generate artifact attestation"
138+ uses : actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
139+ with :
140+ subject-name : ${{ env.DOCKER_IO_REGISTRY }}/${{ env.DOCKER_IO_IMAGE_NAME_SLIM }}
141+ subject-digest : ${{ steps.build-and-push-slim.outputs.digest }}
142+ push-to-registry : true
0 commit comments