name: Master CI/CD

on:
    push:
        branches:
            - master

jobs:
    main:
        name: Build & Publish
        runs-on: ubuntu-latest
        steps:
            - name: Setup Node
              uses: actions/setup-node@v1
              with:
                  node-version: 10.19.0

            - name: Checkout
              uses: actions/checkout@v2

            - name: Install Dependencies
              run: yarn install

            - name: Lint
              run: npx nx affected:lint --all

            - name: Test
              run: npx nx affected:test --all

            - name: Build
              run: npx nx affected:build --all

            - name: Publish Core
              run: |
                  npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN
                  npm config set scope "<@material-scrollbars>"

                  LATEST=`npm view @material-scrollbars/core version`
                  CURRENT=`cat dist/packages/core/package.json | jq -r .version`
                  if [ "$LATEST" != "$CURRENT" ]
                  then
                    npm publish dist/packages/core --access public
                  fi
              env:
                  CI: true
                  NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}

            - name: Publish Text Area
              run: |
                  npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN
                  npm config set scope "<@material-scrollbars>"

                  LATEST=`npm view @material-scrollbars/text-area version`
                  CURRENT=`cat dist/packages/core/package.json | jq -r .version`
                  if [ "$LATEST" != "$CURRENT" ]
                  then
                      npm publish dist/packages/text-area --access public
                  fi
              env:
                  CI: true
                  NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
