name: Continous Integration

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [12.x, 14.x]

    steps:
    - uses: actions/checkout@v2

    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}

    - name: Install dependencies
      run: yarn

    - name: Lint packages
      run: yarn run test:lint

    - name: Build all packages
      run: yarn run build:all:ci

    - name: Run tests
      run: yarn test
  

name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  
  # Allows manual run of workflow
  workflow_dispatch:

jobs:
  build:
    # Select runner to use
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [ 12.x, 14.x ]

    steps:
    - uses: actions/checkout@v2

    - name: Setup Node
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}

    # https://github.com/actions/cache/blob/main/examples.md#node---yarn
    - name: Get Yarn cache directory path
      id: yarn-cache-dir-path
      run: echo "::set-output name=dir::$(yarn cache dir)"

    - uses: actions/cache@v2
      id: yarn-cache
      with:
        path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
        key: ${{ runner.os }}-yarn-${{ matrix.node-version }}-${{ hashFiles('**/yarn.lock') }}
        restore-keys: |
          ${{ runner.os }}-yarn-

    - name: Install dependencies
      run: yarn
      env:
        USE_HARD_LINKS: false

    - name: Lint packages
      run: yarn run test:lint

    - name: Build all packages
      run: yarn run build:all:ci
  
    - name: Run tests
      run: yarn test
  
Update actions and add cache
Update actions and add cache
