mirror of
https://github.com/jquery/jquery.git
synced 2024-12-09 08:04:24 +00:00
6d78c0768d
While Edge in IE mode is not guaranteed to match IE 11 in every aspect, in practice it generally does. Testing in this mode in GitHub Actions will allow us to catch most IE-breaking issues at the PR level. This change also adds missing npm scripts: `test:chrome`, `test:edge` & `test:ie`. Closes gh-5540
145 lines
4.6 KiB
YAML
145 lines
4.6 KiB
YAML
name: Node
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches-ignore: "dependabot/**"
|
|
|
|
permissions:
|
|
contents: read # to fetch code (actions/checkout)
|
|
|
|
jobs:
|
|
build-and-test:
|
|
runs-on: ubuntu-latest
|
|
name: ${{ matrix.NPM_SCRIPT }} - ${{ matrix.NAME }} (${{ matrix.NODE_VERSION }})
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
NAME: ["Node"]
|
|
NODE_VERSION: [18.x, 20.x]
|
|
NPM_SCRIPT: ["test:browserless"]
|
|
include:
|
|
- NAME: "Node"
|
|
NODE_VERSION: "20.x"
|
|
NPM_SCRIPT: "lint"
|
|
- NAME: "Chrome/Firefox"
|
|
NODE_VERSION: "20.x"
|
|
NPM_SCRIPT: "test:browser"
|
|
- NAME: "Chrome"
|
|
NODE_VERSION: "20.x"
|
|
NPM_SCRIPT: "test:slim"
|
|
- NAME: "Chrome"
|
|
NODE_VERSION: "20.x"
|
|
NPM_SCRIPT: "test:no-deprecated"
|
|
- NAME: "Chrome"
|
|
NODE_VERSION: "20.x"
|
|
NPM_SCRIPT: "test:selector-native"
|
|
- NAME: "Chrome"
|
|
NODE_VERSION: "20.x"
|
|
NPM_SCRIPT: "test:esm"
|
|
- NAME: "Firefox ESR (new)"
|
|
NODE_VERSION: "20.x"
|
|
NPM_SCRIPT: "test:firefox"
|
|
- NAME: "Firefox ESR (old)"
|
|
NODE_VERSION: "20.x"
|
|
NPM_SCRIPT: "test:firefox"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
|
|
|
- name: Use Node.js ${{ matrix.NODE_VERSION }}
|
|
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
|
with:
|
|
node-version: ${{ matrix.NODE_VERSION }}
|
|
|
|
- name: Cache
|
|
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
|
with:
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-npm-lock-
|
|
|
|
- name: Set download URL for Firefox ESR (old)
|
|
run: |
|
|
echo "FIREFOX_SOURCE_URL=https://download.mozilla.org/?product=firefox-esr-latest-ssl&lang=en-US&os=linux64" >> "$GITHUB_ENV"
|
|
if: contains(matrix.NAME, 'Firefox ESR (old)')
|
|
|
|
- name: Set download URL for Firefox ESR (new)
|
|
run: |
|
|
echo "FIREFOX_SOURCE_URL=https://download.mozilla.org/?product=firefox-esr-next-latest-ssl&lang=en-US&os=linux64" >> "$GITHUB_ENV"
|
|
if: contains(matrix.NAME, 'Firefox ESR (new)')
|
|
|
|
- name: Install Firefox ESR
|
|
run: |
|
|
wget --no-verbose $FIREFOX_SOURCE_URL -O - | tar -jx -C ${HOME}
|
|
echo "PATH=${HOME}/firefox:$PATH" >> "$GITHUB_ENV"
|
|
echo "FIREFOX_BIN=${HOME}/firefox/firefox" >> "$GITHUB_ENV"
|
|
if: contains(matrix.NAME, 'Firefox ESR')
|
|
|
|
- name: Install dependencies
|
|
run: npm install
|
|
|
|
- name: Build All for Linting
|
|
run: npm run build:all
|
|
if: contains(matrix.NPM_SCRIPT, 'lint')
|
|
|
|
- name: Run tests
|
|
run: npm run ${{ matrix.NPM_SCRIPT }}
|
|
|
|
ie:
|
|
runs-on: windows-latest
|
|
env:
|
|
NODE_VERSION: 20.x
|
|
name: test:ie - IE
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
|
|
|
- name: Use Node.js ${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Cache
|
|
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
|
with:
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-
|
|
|
|
- name: Install dependencies
|
|
run: npm install
|
|
|
|
- name: Run tests in Edge in IE mode
|
|
run: npm run test:ie
|
|
|
|
safari:
|
|
runs-on: macos-latest
|
|
env:
|
|
NODE_VERSION: 20.x
|
|
name: test:safari - Safari
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
|
|
|
- name: Use Node.js ${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Cache
|
|
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
|
with:
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-
|
|
|
|
- name: Install dependencies
|
|
run: npm install
|
|
|
|
- name: Run tests
|
|
run: npm run test:safari
|