name: Release

on:
  push:
    branches:
      - master
      - next
      - beta
      - alpha
      - "*.x"

permissions:
  contents: read

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 trusted publishing and npm provenance
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "lts/*"

      - name: Install pnpm
        uses: pnpm/action-setup@v4
        id: pnpm-install
        with:
          run_install: |
            - recursive: true
              args: [--frozen-lockfile]

      - name: Test
        run: pnpm test:coverage

      - name: Coverage
        uses: codecov/codecov-action@v1

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: npx semantic-release
