jquery-ui/.github/workflows/node.js.yml
Timmy Willison d45638abfa
Tests: conslidate GH actions runs; separate git & stable jQuery versions
- also add hard retries to runs

Closes gh-2260
2024-06-05 09:41:25 -04:00

145 lines
4.1 KiB
YAML

name: Node
on:
pull_request:
push:
branches-ignore: "dependabot/**"
# Once a week every Monday
schedule:
- cron: "42 1 * * 1"
permissions:
contents: read
env:
NODE_VERSION: 20.x
jobs:
build-and-test:
runs-on: ubuntu-latest
name: |
${{ matrix.BROWSER }} | ${{ matrix.JQUERYS.name }}
strategy:
fail-fast: false
matrix:
BROWSER: [chrome, firefox]
JQUERYS:
- versions: --jquery git --jquery 3.x-git
name: jQuery git
- versions: --jquery 3.7.1 --jquery 3.6.4 --jquery 2.2.4 --jquery 1.12.4
name: jQuery stable
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
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 npm dependencies
run: npm install
- name: Lint
run: npm run lint
- name: Build
run: npm run build
- name: Test
run: |
npm run test:unit -- -h -b ${{ matrix.BROWSER }} \
${{ matrix.JQUERYS.versions }} \
--retries 3 --hard-retries 1
edge:
runs-on: windows-latest
name: |
edge | ${{ matrix.JQUERYS.name }}
strategy:
fail-fast: false
matrix:
JQUERYS:
- versions: --jquery git --jquery 3.x-git
name: jQuery git
- versions: --jquery 3.7.1 --jquery 3.6.4 --jquery 2.2.4 --jquery 1.12.4
name: jQuery stable
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
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: Build
run: npm run build
- name: Test
run: |
npm run test:unit -- -h -b edge `
${{ matrix.JQUERYS.versions }} `
--retries 3 --hard-retries 1
safari:
runs-on: macos-latest
name: |
safari | ${{ matrix.JQUERYS.name }}
strategy:
fail-fast: false
matrix:
JQUERYS:
- versions: --jquery git --jquery 3.x-git
name: jQuery git
- versions: --jquery 3.7.1 --jquery 3.6.4 --jquery 2.2.4 --jquery 1.12.4
name: jQuery stable
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
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: Build
run: npm run build
- name: Test
run: |
npm run test:unit -- -b safari \
${{ matrix.JQUERYS.versions }} \
--retries 3 --hard-retries 1