Skip to content

Add npm run test:build script #635

Add npm run test:build script

Add npm run test:build script #635

Workflow file for this run

name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
test:
name: Test
runs-on: macos-latest
env:
GITHUB_ACTIONS_OUTPUT: ""
strategy:
fail-fast: false
matrix:
browser: [chrome, firefox, jsc, safari, spidermonkey, v8]
steps:
- name: Extract Week Number
run: echo "WEEK_NUMBER=$(date +%W)" >> $GITHUB_ENV
- name: Install Firefox
if: ${{ matrix.browser == 'firefox' }}
run: brew install --cask firefox
- name: Checkout Branch
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm
- name: Install Node Packages
run: npm ci
- name: Cache jsvu Binaries
uses: actions/cache@v4
with:
path: ~/.jsvu
key: ${{ runner.os }}-jsvu-${{ matrix.browser }}-week-${{ env.WEEK_NUMBER }}
- name: Run Tests
run: |
echo "Running in $BROWSER"
npm run test:${{ matrix.browser }}
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Branch
uses: actions/checkout@v4
with:
fetch-depth: ${{ github.event_name == 'pull_request' && 2 || 0 }}
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm
- name: Install Node Packages
run: npm ci
- name: Get changed files
id: changed-files
run: |
if ${{ github.event_name == 'pull_request' }}; then
echo "files=$(git diff --name-only -r HEAD^1 HEAD | tr '\n' ' ')" >> $GITHUB_OUTPUT
else
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | tr '\n' ' ')" >> $GITHUB_OUTPUT
fi
- name: Run Build
run: |
npm run test:build -- --changed-files ${{ steps.changed-files.outputs.files }}