NeuraLegion/cypress-har-generator

View on GitHub
.github/workflows/deploy.yml

Summary

Maintainability
Test Coverage
name: Automated deploy

on:
  release:
    types: [created]

env:
  VERSION: ${{ github.event.release.tag_name }}
  TARGET_REF: ${{ github.event.release.target_commitish }}
  TAG: ${{ github.event.release.target_commitish == 'master' && 'latest' || 'next' }}

jobs:
  install-deps:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ env.TARGET_REF }}
          token: ${{ secrets.GPR_TOKEN }}

      - name: Install deps
        uses: ./.github/workflows/composite/npm

  build:
    runs-on: ubuntu-latest
    needs: install-deps
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ env.TARGET_REF }}
          token: ${{ secrets.GPR_TOKEN }}

      - name: Install deps
        uses: ./.github/workflows/composite/npm

      - name: Build package
        run: npm run build

      - uses: actions/upload-artifact@v4
        with:
          name: build
          path: |
            dist
            package.json
            package-lock.json
            README.md
            LICENSE

  publish-to-npm:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ env.TARGET_REF }}
          token: ${{ secrets.GPR_TOKEN }}

      - uses: actions/download-artifact@v4
        with:
          name: build

      - name: Install deps
        uses: ./.github/workflows/composite/npm

      - name: Publish package to NPM
        run: npm publish --tag $TAG
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

  publish-to-gpr:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ env.TARGET_REF }}
          token: ${{ secrets.GPR_TOKEN }}

      - uses: actions/download-artifact@v4
        with:
          name: build

      - name: Install deps
        uses: ./.github/workflows/composite/npm
        with:
          registry: 'https://npm.pkg.github.com/neuralegion'
          scope: '@NeuraLegion'

      - name: Publish package to GPR
        run: npm publish --tag $TAG
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GPR_TOKEN }}