# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions # yarn cache setup from https://www.karltarvas.com/2020/12/09/github-actions-cache-yarn-install.html name: Code checks on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [18.1.0] steps: - name: Checkout source uses: actions/checkout@v2 - name: Install tools uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} # See: https://github.com/actions/cache/blob/main/examples.md#node---yarn - name: Get Yarn cache directory id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - name: Use Yarn cache 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') }} - name: Install dependencies run: yarn install --prefer-offline --frozen-lockfile - name: Unit tests run: yarn test - name: Lint run: yarn run lint-ci - name: Typescript run: yarn run tsc