name: Release

on:
  push:
    branches: [master, pre, develop]
permissions:
  contents: read # for checkout
jobs:
  release:
    name: Release
    runs-on: ubuntu-latest
    permissions:
      contents: write # to be able to publish a GitHub release
      issues: write # to be able to comment on released issues
      pull-requests: write # to be able to comment on released pull requests
      id-token: write # to enable use of OIDC for npm provenance
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: "20.x"
      - name: Install PNPM
        run: npm i -g pnpm
      - name: Install dependencies
        run: pnpm install --frozen-lockfile
      - name: Run Tests
        run: pnpm test
      - name: Build Package
        run: pnpm build
      - name: Semantic Release
        run: npx semantic-release
        env:
          NPM_TOKEN: "${{ secrets.NPM_TOKEN }}"
          GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
