name: Publish all packages

on:
  push:
    branches:
      - master

jobs:
  #  agents:
  #    if: ${{ !startsWith(github.event.head_commit.message, 'Release ') }}
  #    runs-on: ubuntu-latest
  #    name: Agent 1
  #    timeout-minutes: 60
  #    strategy:
  #      matrix:
  #        agent: [ 1, 2, 3 ]
  #    steps:
  #      - uses: actions/checkout@v2
  #        with:
  #          fetch-depth: 0
  #      - uses: actions/setup-node@v1
  #        with:
  #          node-version: '14'
  #      - run: yarn
  #      - name: Start Nx Agent ${{ matrix.agent }}
  #        run: npx nx-cloud start-agent

  publish:
    if: ${{ !startsWith(github.event.head_commit.message, 'Release ') }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        name: Checkout
        with:
          token: ${{ secrets.PAT_GITHUB_ADMIN }}

      - name: Get yarn cache directory path
        id: yarn-cache-dir-path
        run: echo "::set-output name=dir::$(yarn cache dir)"

      - name: Git config
        run: |
          git config --local user.name github-actions
          git config --local user.email github-actions@github.com
      - uses: actions/cache@v2
        id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
        with:
          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-
      - uses: actions/setup-node@v1
        with:
          node-version: '14'
      - run: yarn --ignore-scripts --frozen-lockfile

      - name: Update version of packages
        run: yarn version:alpha

#      - name: Update version of packages
#        run: yarn --ignore-scripts release:apply-version
#        env:
#          GITHUB_TOKEN: ${{ secrets.PAT_GITHUB_ADMIN }}

      #      - run: npx nx-cloud start-ci-run
      - run: yarn build:all:prod
      #      - run: npx nx-cloud stop-all-agents

      - run: echo "//registry.npmjs.org/:_authToken=${{secrets.NPM_TOKEN}}" > ~/.npmrc

      - name: Publish packages
        run: yarn --ignore-scripts release:current
        env:
          GITHUB_TOKEN: ${{ secrets.PAT_GITHUB_ADMIN }}
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
