name: Browserstack on: push: branches: - main 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' - 'Safari_latest' - 'Safari_latest-1' - 'Chrome_latest' - 'Chrome_latest-1' - 'Opera_latest' - 'Edge_latest' - 'Edge_latest-1' - 'Firefox_latest' - 'Firefox_latest-1' - '__iOS_18' - '__iOS_17' - '__iOS_16' steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} - name: Cache uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 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 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 }}