diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 02b444f..aab6c78 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,8 +1,7 @@ name: Release permissions: - id-token: write # Required for OIDC - contents: write + contents: read on: push: @@ -10,7 +9,7 @@ on: - 'v*' jobs: - release: + build: runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -24,12 +23,10 @@ jobs: uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 with: node-version: 24 - registry-url: 'https://registry.npmjs.org' cache: pnpm - - name: 📥 Install dependencies - run: pnpm install --frozen-lockfile + run: pnpm install --ignore-scripts --frozen-lockfile - name: 🔍 Type Check run: pnpm run typecheck @@ -64,21 +61,72 @@ jobs: echo "✅ Build artifacts validation passed" + - name: 📤 Upload package artifact + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: package + path: | + dist/ + package.json + README.md + LICENSE + retention-days: 1 + if-no-files-found: error + + publish: + needs: build + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + steps: + - name: ⎔ Setup pnpm + uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + + - name: ⎔ Setup Node.js + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 + with: + node-version: 24 + registry-url: 'https://registry.npmjs.org' + + - name: 📥 Download package artifact + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: package + - name: 📦 Publish to NPM - run: pnpm publish --no-git-checks + run: pnpm publish --no-git-checks --ignore-scripts env: NODE_AUTH_TOKEN: "" # Clear placeholder set by setup-node to enable OIDC + release-notes: + needs: publish + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + fetch-depth: 0 + + - name: ⎔ Setup Node.js + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: 24 - name: 📝 Update Changelog - run: npx changelogithub + run: npx changelogithub@14.0.0 env: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + notify: + needs: [build, publish, release-notes] + if: always() + runs-on: ubuntu-latest + steps: - name: 📣 Notify release result - if: always() uses: marimo-team/internal-gh-actions/release-notification@ba06d4db1f3c5c9b86983ce409e57196f8376777 # main with: - status: ${{ job.status }} + status: ${{ (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) && 'failure' || 'success' }} slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL_RELEASES }} artifact-url: "https://npmjs.com/package/@marimo-team/codemirror-sql"