Files
jquery/.github/workflows/browserstack.yml
Michał Gołębiowski-Owczarek 94bd860301 Build: Simplify caching in CI, use npm ci (3.x)
Our setup is pretty standard, so manual configuration of `actions/cache`
is an overkill. Relying on built-in `actions/node` caching will also resolve
differences between caching configurations for macOS/Linux vs. Windows.

Also, switch from `npm install` to `npm ci` in CI.

Closes gh-5703
Ref gh-5702
Ref jquery/jquery-migrate#597
2025-09-15 18:14:49 +02:00

95 lines
2.8 KiB
YAML

name: Browserstack
on:
push:
branches:
- 3.x-stable
jobs:
test:
runs-on: ubuntu-latest
environment: browserstack
env:
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
NODE_VERSION: 22.x
name: ${{ matrix.BROWSER }}
concurrency:
group: ${{ github.workflow }}-${{ matrix.BROWSER }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
BROWSER:
- 'IE_11'
- 'IE_10'
- 'IE_9'
- 'Safari_latest'
# JTR doesn't take into account the jump from Safari 18 to 26,
# so we need to specify versions explicitly. Also, while BrowserStack
# already added macOS Tahoe with Safari 26, it's not a stable release
# yet, so we need to test on Safari 17 as well.
# See https://github.com/jquery/jquery-test-runner/issues/17
- 'Safari_18'
- 'Safari_17'
- 'Chrome_latest'
- 'Chrome_latest-1'
- 'Opera_latest'
- 'Edge_latest'
- 'Edge_latest-1'
- 'Edge_18'
- 'Firefox_latest'
- 'Firefox_latest-1'
- 'Firefox_115'
- 'Firefox_102'
- 'Firefox_91'
- 'Firefox_78'
- 'Firefox_60'
- 'Firefox_48'
- '__iOS_18'
- '__iOS_17'
- '__iOS_16'
- '__iOS_15'
- '__iOS_14'
- '__iOS_13'
- '__iOS_12'
- '__iOS_11'
# iOS 10 is a tier 4 device as of January 2025 and its availability
# is poor, leading to frequent test timeouts. Skip testing on it.
# See https://www.browserstack.com/device-tiers
# - '__iOS_10'
# Versions below are not officially supported by BrowserStack as
# they use emulators instead of real devices. We include them as
# long as they still work.
- '__iOS_9'
- '__iOS_8'
# iOS 7 emulators no longer work properly
# - '__iOS_7'
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: '**/package-lock.json'
- name: Install dependencies
run: npm ci
- name: Build jQuery
run: npm run build:all
- name: Pretest script
run: npm run pretest
- name: Run tests
run: |
npm run test:unit -- -v -c jtr-isolate.yml \
--browserstack "${{ matrix.BROWSER }}" \
--run-id ${{ github.run_id }}