Skip to content

Core: Add support for flat preconfig via environment/global variables #899

Core: Add support for flat preconfig via environment/global variables

Core: Add support for flat preconfig via environment/global variables #899

Workflow file for this run

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 builds locally:
#
# 1. Run the build the same way you normally do.
# ```
# nobody@nodejs-isolated:/qunit$ npm run build
# ```
# 2. Start a temporary Docker container using the official Ubuntu image from DockerHub,
# and mount the current working directory in it:
# ```
# you@host:/qunit$ MNT=$(basename "$PWD"); docker run --rm --interactive --tty --mount type=bind,source="$PWD",target="/$MNT",readonly --entrypoint /bin/sh ubuntu:focal -c "cd /$MNT;bash"
# ```
# 3. Run the following from the Docker container's bash prompt:
# ```
# root@ubuntu-tmp/qunit$ apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmozjs-68-dev
# root@ubuntu-tmp/qunit$ js68 test/mozjs.js
# root@ubuntu-tmp/qunit$ js68 test/benchmark/index-mozjs.js
# ```
sm-test:
name: SpiderMonkey
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 16
uses: actions/setup-node@v4
with:
node-version: 16.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