CI #1322
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
- push | |
- pull_request | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
main-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: "Linux: Node 18" | |
os: ubuntu-20.04 | |
node: 18.x | |
script: npm run test-nolint | |
- name: "Linux: Node 16" | |
# Includes 'firefox', 'chromium', and more. | |
# https://github.com/actions/virtual-environments/blob/ubuntu20/20220410.2/images/linux/Ubuntu2004-Readme.md | |
os: ubuntu-20.04 | |
node: 16.x | |
# Run the lint step only once because, in March 2022, GitHub began | |
# automatically extracting ESLint warnings from build logs and turning them into | |
# checks shown inline in PR diffs, but doesn't de-duplicate these. | |
script: npm test | |
- name: "Linux: Node 14" | |
os: ubuntu-20.04 | |
node: 14.x | |
script: npm run test-nolint | |
- name: "Linux: Node 12" | |
os: ubuntu-20.04 | |
node: 12.x | |
script: npm run test-nolint | |
- name: "Linux: Node 10" | |
os: ubuntu-20.04 | |
node: 10.x | |
script: npm run test-nolint | |
- name: "Integration" | |
os: ubuntu-20.04 | |
node: 16.x | |
script: npm run test-integration | |
- name: "Windows: Node 16" | |
os: windows-latest | |
node: 16.x | |
script: npm run test-nolint | |
# use macos-12 instead of macos-latest | |
# as proxy for Intel instead of ARM | |
# because the older Puppeteer/Chromr for Node 10 compat | |
# didn't support ARM yet. | |
- name: "macOS: Node 16" | |
os: macos-12 | |
node: 16.x | |
script: npm run test-nolint | |
name: ${{ matrix.name }} | |
runs-on: ${{ matrix.os }} | |
env: | |
PUPPETEER_DOWNLOAD_PATH: "${{ github.workspace }}/.puppeteer_download" | |
FORCE_COLOR: "1" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
if: ${{ runner.os != 'Windows' }} | |
with: | |
path: | | |
~/.npm | |
${{ github.workspace }}/.puppeteer_download | |
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} | |
- name: Use Node.js ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- run: npm ci | |
- name: Tests | |
run: ${{ matrix.script }} | |
# To reproduce SpiderMonkey 68 builds locally: | |
# | |
# ``` | |
# you:/qunit$ npm run build | |
# | |
# you:/qunit$ export MNT=$(basename "$PWD"); docker run --rm --interactive --tty --mount type=bind,source="$PWD",target="/$MNT",readonly --entrypoint /bin/sh ubuntu:20.04 -c "cd /$MNT;bash" | |
# ``` | |
# ``` | |
# root@ubuntu:/qunit$ apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmozjs-68-dev | |
# root@ubuntu:/qunit$ js68 test/mozjs.js | |
# ``` | |
mozjs-68: | |
name: SpiderMonkey 68 | |
runs-on: ubuntu-20.04 | |
env: | |
PUPPETEER_DOWNLOAD_PATH: "${{ github.workspace }}/.puppeteer_download" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.npm | |
${{ github.workspace }}/.puppeteer_download | |
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} | |
- name: Use Node.js 18 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- name: Install mozjs | |
run: | | |
sudo apt-fast install -y libmozjs-68-dev | |
- run: npm ci | |
- run: npm run build | |
- name: Tests | |
run: js68 test/mozjs.js | |
# To reproduce SpiderMonkey 102 builds locally: | |
# | |
# ``` | |
# you:/qunit$ npm run build | |
# | |
# you:/qunit$ export MNT=$(basename "$PWD"); docker run --rm --interactive --tty --mount type=bind,source="$PWD",target="/$MNT",readonly --entrypoint /bin/sh debian:12-slim -c "cd /$MNT;bash" | |
# ``` | |
# ``` | |
# root@ubuntu:/qunit$ apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmozjs-102-dev | |
# root@ubuntu:/qunit$ js102 test/mozjs.js | |
# ``` | |
mozjs-102: | |
name: SpiderMonkey 102 | |
runs-on: ubuntu-24.04 | |
env: | |
PUPPETEER_DOWNLOAD_PATH: "${{ github.workspace }}/.puppeteer_download" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.npm | |
${{ github.workspace }}/.puppeteer_download | |
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} | |
- name: Use Node.js 18 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- name: Install mozjs | |
run: | | |
sudo apt-get install -y libmozjs-102-dev | |
- run: npm ci | |
- run: npm run build | |
- name: Tests | |
run: js102 test/mozjs.js | |
# To reproduce SpiderMonkey 115 builds locally: | |
# | |
# ``` | |
# you:/qunit$ npm run build | |
# | |
# you:/qunit$ export MNT=$(basename "$PWD"); docker run --rm --interactive --tty --mount type=bind,source="$PWD",target="/$MNT",readonly --entrypoint /bin/sh ubuntu:24.04 -c "cd /$MNT;bash" | |
# ``` | |
# ``` | |
# root@ubuntu:/qunit$ apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmozjs-115-dev | |
# root@ubuntu:/qunit$ js115 test/mozjs.js | |
# ``` | |
mozjs-115: | |
name: SpiderMonkey 115 | |
runs-on: ubuntu-24.04 | |
env: | |
PUPPETEER_DOWNLOAD_PATH: "${{ github.workspace }}/.puppeteer_download" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.npm | |
${{ github.workspace }}/.puppeteer_download | |
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} | |
- name: Use Node.js 18 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- name: Install mozjs | |
run: | | |
sudo apt-get install -y libmozjs-115-dev | |
- run: npm ci | |
- run: npm run build | |
- name: Tests | |
run: js115 test/mozjs.js |