name: Release
on:
  push:
    branches:
      - main
permissions:
  contents: write
  pull-requests: write
  actions: write
jobs:
  test:
    uses: wesleytodd/cptmpl/.github/workflows/test-workflow.yml@main
  release:
    name: Release
    runs-on: ubuntu-latest
    needs: [test]
    outputs:
      releasePlease: ${{ toJSON(steps.releasePlease.outputs) }}
    steps:
      - uses: actions/checkout@v4
      - uses: google-github-actions/release-please-action@v3
        name: Release Please
        if: github.ref_name == 'main'
        id: releasePlease
        with:
          release-type: node
          token: ${{ secrets.GITHUB_TOKEN }}
  publish:
    name: Publish
    runs-on: ubuntu-latest
    needs: [release]
    steps:
      - uses: actions/checkout@v4
      - name: Use Node.js 20.x
        uses: actions/setup-node@v3
        with:
          node-version: 20.x
      - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc
      - name: Publish
        if: github.ref_name == 'main' && !fromJson(needs.release.outputs.releasePlease).pr
        run: npm publish
