name: Release on: push: branches: [main] permissions: contents: write issues: write pull-requests: write id-token: write # npm provenance attestation jobs: release: name: Release runs-on: ubuntu-latest # Skip releases created by semantic-release itself (commit message contains [skip ci]) if: "!contains(github.event.head_commit.message, '[skip ci]')" steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 persist-credentials: false - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Typecheck run: npm run typecheck - name: Build run: npm run build - name: Test run: npm test - name: Semantic Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: npx semantic-release