From c07c5a80cf275ffba6161ba1194544ae11a914b6 Mon Sep 17 00:00:00 2001 From: Ignacio Capodanno Date: Thu, 29 Oct 2026 10:08:12 -0300 Subject: [PATCH] fix: skip a version already published instead of failing the release --- .github/workflows/build-and-publish.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 9bd6c1a..217c2a7 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -33,7 +33,15 @@ jobs: registry-url: 'https://registry.npmjs.org' - run: yarn install --frozen-lockfile - run: yarn build:prod - - run: yarn publish --non-interactive --access public + # A release that already published is re-runnable: the version is skipped, not an error. + - name: Publish to npm + run: | + PKG="$(node -p "const p = require('./package.json'); p.name + '@' + p.version")" + if npm view "$PKG" version > /dev/null 2>&1; then + echo "$PKG is already on npm, skipping." + exit 0 + fi + yarn publish --non-interactive --access public env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} # Mirror to GitHub Packages so frontapp/front can install @frontapp/ui-kit @@ -47,6 +55,11 @@ jobs: printf '%s\n' \ 'registry=https://npm.pkg.github.com' \ "//npm.pkg.github.com/:_authToken=$GITHUB_PACKAGES_TOKEN" > "$NPM_CONFIG_USERCONFIG" + PKG="$(node -p "const p = require('./package.json'); p.name + '@' + p.version")" + if npm view "$PKG" version > /dev/null 2>&1; then + echo "$PKG is already on GitHub Packages, skipping." + exit 0 + fi yarn publish --non-interactive --access public env: GITHUB_PACKAGES_TOKEN: ${{secrets.GITHUB_TOKEN}}