name: ci

on:
    push:
        branches:
            - main
            - master
    pull_request:
        branches:
            - main
            - master

jobs:
    ci:
        runs-on: ${{ matrix.os }}

        strategy:
            matrix:
                os: [ubuntu-latest]
                node: [lts/*]

        steps:
            - name: Checkout 🛎
              uses: actions/checkout@master

            - name: Setup node env 🏗
              uses: actions/setup-node@v3.0.0
              with:
                  node-version: ${{ matrix.node }}
                  check-latest: true

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

            - name: Cache node_modules 📦
              uses: actions/cache@v2.1.7
              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-

            - name: Install dependencies 👨🏻‍💻
              run: yarn

            - name: Run linter 👀
              run: yarn lint

            - name: Run tests 🧪
              run: yarn test
