diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a07d4bd..15d8a0d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,6 +3,7 @@ name: CI on: push: branches: [master] + tags: ["v*"] pull_request: branches: [master] @@ -22,7 +23,7 @@ jobs: publish: needs: test runs-on: ubuntu-latest - if: github.event_name == 'push' && github.ref == 'refs/heads/master' + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') permissions: id-token: write steps: @@ -31,20 +32,17 @@ jobs: with: node-version: "20" cache: "npm" + registry-url: "https://registry.npmjs.org" + - name: Verify tag matches package.json version + run: | + TAG_VERSION="${GITHUB_REF#refs/tags/v}" + PKG_VERSION=$(node -p "require('./package.json').version") + if [ "$TAG_VERSION" != "$PKG_VERSION" ]; then + echo "Tag v$TAG_VERSION does not match package.json version $PKG_VERSION" + exit 1 + fi - run: npm ci - run: npm run build - - name: Check if version already published - id: version-check - run: | - CURRENT_VERSION=$(node -p "require('./package.json').version") - PUBLISHED_VERSION=$(npm view @farhoodliquor/paperclip-adapter-opencode-k8s version 2>/dev/null || echo "") - echo "Current: $CURRENT_VERSION, Published: $PUBLISHED_VERSION" - if [ "$CURRENT_VERSION" = "$PUBLISHED_VERSION" ]; then - echo "already_published=true" >> $GITHUB_OUTPUT - else - echo "already_published=false" >> $GITHUB_OUTPUT - fi - - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc - if: steps.version-check.outputs.already_published == 'false' - run: npm publish --access public - if: steps.version-check.outputs.already_published == 'false' + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}