name: Release

on:
  push:
    branches:
      - main

jobs:
  prepare:
    name: Prepare
    runs-on: ubuntu-latest
    if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
    steps:
      - run: echo "${{ github.event.head_commit.message }}"
  release:
    needs: prepare
    name: Release
    runs-on: ubuntu-latest
    permissions:
      id-token: write # Required for trusted publisher publishing
      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
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version-file: .nvmrc
          cache: npm
      - name: Install dependencies
        run: npm ci
        env:
          NODE_ENV: development
          HUSKY: 0
      - name: Release
        env:
          GIT_AUTHOR_EMAIL: ${{ secrets.GIT_AUTHOR_EMAIL }}
          GIT_AUTHOR_NAME: ${{ secrets.GIT_AUTHOR_NAME }}
          GIT_COMMITTER_EMAIL: ${{ secrets.GIT_COMMITTER_EMAIL }}
          GIT_COMMITTER_NAME: ${{ secrets.GIT_COMMITTER_NAME }}
          GITHUB_TOKEN: ${{ secrets.PA_TOKEN }}
        run: npx semantic-release
