on:
  push:
    branches:
      - master
      - beta
      - +([0-9])?(.{+([0-9]),x}).x

env:
  NODE_ENV: ci

name: Release

jobs:
  tests:
    name: Tests
    uses: ./.github/workflows/tests.yml
    secrets:
      INFURA_API_KEY: ${{ secrets.INFURA_API_KEY }}

  linters:
    name: Linters
    uses: ./.github/workflows/linters.yml

  release:
    name: Publish Release
    runs-on: ubuntu-latest
    needs: [tests, linters]
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18.x
      - run: npm ci
      - run: npm run build
      - uses: codfish/semantic-release-action@v2
        id: semantic
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
      - name: Output new release version
        if: steps.semantic.outputs.new-release-published == 'true'
        run: |
          echo "🎉New Release Published: ${{ steps.semantic.outputs.release-version }}"
