name: 'Publish to npm'
on:
  push:
    tags:
      - 'v*'

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [18.x]

    steps:
      - uses: actions/checkout@v3
      - name: Setup to npm
        uses: actions/setup-node@v3
        with:
          node-version: 18.17
          registry-url: 'https://registry.npmjs.org'
          cache: 'yarn'
      - name: Build
        run: |
          yarn install --frozen-lockfile
      - name: Publish to npm
        run: |
          LATEST=$(npm show unleash-server version)
          TAG=$(node scripts/npm-tag.js $LATEST)
          npm publish --tag ${TAG:-latest}
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
      - uses: aws-actions/configure-aws-credentials@v2
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
      - name: Get the version
        id: get_version
        run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
      - name: Publish static assets to S3
        run: |
          aws s3 cp frontend/build s3://getunleash-static/unleash/${{ steps.get_version.outputs.VERSION }} --recursive