Skip to content

Commit

Permalink
Merge pull request #2823 from dannon/fix-build-and-test
Browse files Browse the repository at this point in the history
Updates to main build-and-test github action
  • Loading branch information
dannon authored Nov 19, 2024
2 parents c587ce9 + 19c448e commit 5415813
Showing 1 changed file with 33 additions and 16 deletions.
49 changes: 33 additions & 16 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,70 @@ name: PR Tests
on:
pull_request:
workflow_dispatch:

concurrency:
group: primary-tests-${{ github.head_ref }}
cancel-in-progress: true

env:
NODE_OPTIONS: --max-old-space-size=4096

jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v2

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '16'
- name: Get yarn cache directory path
node-version: '18'

- name: Get Yarn Cache Directory Path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v1
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT

- name: Cache Yarn Dependencies
uses: actions/cache@v3
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install project dependencies
run: yarn --prefer-offline
- name: Jest Tests
- name: Install Project Dependencies
run: yarn install --prefer-offline

- name: Run Jest Tests
run: yarn jest
- name: Build static site

- name: Build Static Site
run: yarn build

- name: Serve and Check Links
# Looks weird, but this works significantly better than running it
# through a single node process
run: yarn run serve & (sleep 5 && yarn run links:internal)
- name: Cypress run
uses: cypress-io/github-action@v2
run: |
yarn serve &
sleep 5
yarn links:internal
- name: Run Cypress Tests
uses: cypress-io/github-action@v4
with:
start: yarn serve
wait-on: "http://localhost:8080"

- name: Upload Cypress Screenshots
if: always()
uses: actions/upload-artifact@v4
with:
name: cypress-screenshots
path: cypress/screenshots
if-no-files-found: ignore

- name: Upload Cypress Videos
if: always()
uses: actions/upload-artifact@v4
with:
name: cypress-videos
Expand Down

0 comments on commit 5415813

Please sign in to comment.