name: Release and Publish

on:
 push:
  branches: 
    - main
    - next

jobs:
 test:
  runs-on: ubuntu-latest
  steps:
  - name: Checkout
    uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
  - name: Setup Node.js
    uses: actions/setup-node@v3
    with:
      node-version: 18.x
  - name: npm install
    run: |
      npm install
  - name: npm test
    run: |
      npm test

 release:
  name: Release
  runs-on: ubuntu-latest
  needs: [test]
  steps:
  - name: Checkout
    uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
  - name: Setup Node.js
    uses: actions/setup-node@v3
    with:
      node-version: 18.x
  - name: npm install
    run: |
      npm install
  - name: npx semantic-release
    run: |
      npx semantic-release
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
