11name : publish
22
33on :
4- push :
5- branches :
6- - main
7- tags :
8- - " v*"
9- pull_request :
4+ release :
5+ types :
6+ - published
107
118permissions :
129 contents : read
@@ -29,34 +26,31 @@ jobs:
2926
3027 # Habilita emulacao para publicar amd64 e arm64 a partir do runner padrao.
3128 - name : Set up QEMU
32- uses : docker/setup-qemu-action@v3
29+ uses : docker/setup-qemu-action@v4
3330
3431 # Prepara o builder Buildx com suporte a multiplataforma e cache.
3532 - name : Set up Docker Buildx
3633 uses : docker/setup-buildx-action@v4
3734
3835 # Faz login no GHCR usando o token nativo do workflow, como recomendado pela documentacao do GitHub.
3936 - name : Log in to GHCR
40- if : github.event_name != 'pull_request'
4137 uses : docker/login-action@v4
4238 with :
4339 registry : ghcr.io
4440 username : ${{ github.actor }}
4541 password : ${{ secrets.GITHUB_TOKEN }}
4642
47- # Gera tags e labels OCI automaticamente para branch main, semver e SHA curto .
43+ # Gera tags OCI a partir da release publicada .
4844 - name : Extract Docker metadata
4945 id : meta
50- uses : docker/metadata-action@v5
46+ uses : docker/metadata-action@v6
5147 with :
5248 images : ghcr.io/${{ github.repository_owner }}/debugtools
5349 tags : |
54- type=raw,value=main,enable=${{ github.ref == 'refs/heads/main' }}
55- type=semver,pattern={{version}},enable=${{ startsWith(github.ref, 'refs/tags/v') }}
56- type=semver,pattern={{major}}.{{minor}},enable=${{ startsWith(github.ref, 'refs/tags/v') }}
57- type=sha,format=short
50+ type=raw,value=${{ github.event.release.tag_name }}
51+ type=raw,value=latest,enable=${{ github.event.release.prerelease == false }}
5852
59- # Monta a imagem, roda o build multiplataforma e publica no GHCR fora de pull request .
53+ # Monta a imagem, roda o build multiplataforma e publica no GHCR quando a release for publicada .
6054 - name : Build and push
6155 id : build
6256 uses : docker/build-push-action@v7
@@ -65,16 +59,15 @@ jobs:
6559 file : ./Dockerfile
6660 platforms : linux/amd64,linux/arm64
6761 pull : true
68- push : ${{ github.event_name != 'pull_request' }}
62+ push : true
6963 tags : ${{ steps.meta.outputs.tags }}
7064 labels : ${{ steps.meta.outputs.labels }}
7165 cache-from : type=gha
7266 cache-to : type=gha,mode=max
7367
74- # Publica atestacao de proveniencia apenas quando a imagem realmente foi enviada ao GHCR.
68+ # Publica atestacao de proveniencia da imagem publicada no GHCR.
7569 - name : Attest build provenance
76- if : github.event_name != 'pull_request'
77- uses : actions/attest-build-provenance@v2
70+ uses : actions/attest-build-provenance@v4
7871 with :
7972 subject-name : ghcr.io/${{ github.repository_owner }}/debugtools
8073 subject-digest : ${{ steps.build.outputs.digest }}
0 commit comments