From d6e0e7bfb979eb8473f4a10dad503c298da7a7a8 Mon Sep 17 00:00:00 2001 From: Jake Jarvis Date: Tue, 2 Jun 2020 21:04:40 -0400 Subject: [PATCH] Update ci.yml --- .github/workflows/ci.yml | 57 ++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5aa60492..919a8729 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: CI +name: Run tests on: push: @@ -7,30 +7,48 @@ on: pull_request: jobs: - deploy: + lint: + runs-on: ubuntu-latest + if: "!contains(github.event.head_commit.message, '[skip ci]')" + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + # https://github.com/actions/cache/blob/master/examples.md#node---yarn + # https://github.com/actions/cache/issues/60 + - name: Get yarn cache location + id: yarn-cache + run: echo "::set-output name=dir::$(yarn cache dir)" + - uses: actions/cache@v1 + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - run: yarn install --no-ignore-optional --frozen-lockfile + - run: yarn lint + + lighthouse: runs-on: ubuntu-latest # "[skip ci]" also causes Netlify to skip, so these are automatically in harmony # https://docs.netlify.com/site-deploys/manage-deploys/#skip-a-deploy if: "!contains(github.event.head_commit.message, '[skip ci]')" - env: - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - steps: - - name: Wait for Netlify - run: npx netlify-cli watch - - lighthouse: - runs-on: ubuntu-latest - needs: deploy - env: - LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }} steps: - uses: actions/checkout@v2 + with: + fetch-depth: 1 - uses: actions/setup-node@v1 with: node-version: 12.x - - name: Install LHCI - run: npm install -g @lhci/cli + - run: npm install -g netlify-cli @lhci/cli + - name: Wait for Netlify + run: netlify watch + env: + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - name: Audit deploy preview if: github.event_name == 'pull_request' continue-on-error: true @@ -39,6 +57,8 @@ jobs: --collect.url=https://deploy-preview-${{ github.event.number }}--jakejarvis.netlify.com/ \ --collect.url=https://deploy-preview-${{ github.event.number }}--jakejarvis.netlify.com/notes/how-to-pull-request-fork-github/ \ --collect.url=https://deploy-preview-${{ github.event.number }}--jakejarvis.netlify.com/notes/how-to-pull-request-fork-github/amp.html + env: + LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }} - name: Audit jarv.is if: github.event_name == 'push' && github.ref == 'refs/heads/master' continue-on-error: true @@ -47,6 +67,8 @@ jobs: --collect.url=https://jarv.is/ \ --collect.url=https://jarv.is/notes/how-to-pull-request-fork-github/ \ --collect.url=https://jarv.is/notes/how-to-pull-request-fork-github/amp.html + env: + LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }} - name: Upload results as artifact uses: actions/upload-artifact@v1 with: @@ -83,9 +105,6 @@ jobs: run: yarn install --no-ignore-optional --frozen-lockfile - name: Build site preview run: yarn build:preview - - name: Lint - continue-on-error: true - run: yarn lint - name: Percy snapshots uses: percy/snapshot-action@v0.1.0 env: