From d35aef14a973f34dc2e80286c76fad7bd24701de Mon Sep 17 00:00:00 2001 From: Gabriel Moraes Date: Wed, 1 Jul 2026 12:23:43 -0300 Subject: [PATCH] =?UTF-8?q?ci(publish):=20pular=20npm=20publish=20quando?= =?UTF-8?q?=20a=20vers=C3=A3o=20j=C3=A1=20existe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Guard antes do whoami/publish: consulta `npm view` e, se a versão do package.json já está publicada, encerra o job verde. Permite Releases retroativos e re-runs sem falhar (o npm é imutável por versão). Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/publish.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2a2fb6d..632ca9d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -23,12 +23,27 @@ jobs: registry-url: 'https://registry.npmjs.org' - run: npm install - run: npm run build + # Se a versão do package.json já está no npm (ex.: Release retroativo ou + # re-run), pula o publish e encerra verde — o npm é imutável por versão. + - name: Versão já publicada? + id: check + run: | + VERSION=$(node -p "require('./package.json').version") + if npm view "@orynlabs/smsgo@$VERSION" version >/dev/null 2>&1; then + echo "already=true" >> "$GITHUB_OUTPUT" + echo "::notice::@orynlabs/smsgo@$VERSION já está no npm — pulando publish." + else + echo "already=false" >> "$GITHUB_OUTPUT" + fi # Valida o NPM_TOKEN sem publicar: imprime o usuário npm se o token # autenticar; falha aqui (e aborta o publish) se estiver errado/ausente. - name: Validar NPM_TOKEN (whoami) + if: steps.check.outputs.already == 'false' run: npm whoami env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - run: npm publish --provenance --access public + - name: Publicar no npm + if: steps.check.outputs.already == 'false' + run: npm publish --provenance --access public env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}