Skip to content

Commit 7ee3e90

Browse files
committed
Atualiza workflow de publicação para acionar apenas em releases e ajusta etapas de configuração do Docker
1 parent a3a011f commit 7ee3e90

2 files changed

Lines changed: 16 additions & 39 deletions

File tree

.github/workflows/publish.yml

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
name: publish
22

33
on:
4-
push:
5-
branches:
6-
- main
7-
tags:
8-
- "v*"
9-
pull_request:
4+
release:
5+
types:
6+
- published
107

118
permissions:
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 }}

README.md

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -75,21 +75,13 @@ Se algum binário extra virar necessidade recorrente e justificada por evidênci
7575

7676
## Como usar
7777

78-
### 1. Publicar no GHCR
78+
### 1. Clonar o repositório
7979

80-
O workflow em `.github/workflows/publish.yml` publica a imagem em:
81-
82-
```text
83-
ghcr.io/heraque/debugtools
80+
```bash
81+
git clone git@github.com:heraque/debugTools.git
82+
cd debugTools
8483
```
8584

86-
Fluxo esperado:
87-
88-
1. subir mudanças na branch `main`;
89-
2. deixar o GitHub Actions buildar e publicar;
90-
3. preferir tags versionadas para produção, por exemplo `v0.1.0`;
91-
4. evitar depender de `:main` por muito tempo em ambientes estáveis.
92-
9385
### 2. Build local
9486

9587
```bash
@@ -151,14 +143,6 @@ Trade-off aceito:
151143
- a imagem não é a menor possível em bytes absolutos;
152144
- ela é pequena o bastante para uso operacional e grande o bastante para evitar fallback tosco durante incidentes reais.
153145

154-
## Versionamento recomendado
155-
156-
Para uso operacional estável:
157-
158-
- publique com tag semântica, por exemplo `v0.1.0`
159-
- fixe o chart/consumer nesse tag
160-
- use `:main` apenas como trilha de desenvolvimento
161-
162146
## Quando evoluir esta imagem
163147

164148
Vale mexer nela quando houver evidência recorrente de que falta uma capacidade necessária ao troubleshooting real, por exemplo:

0 commit comments

Comments
 (0)