From aa0bd6f6b5723880236c2cd5528300036e0fb237 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Mon, 8 Jul 2024 02:41:16 +0100 Subject: [PATCH] [WIP] Build: Try adding back old iOS/Android to BS matrix * Drop support for Android 4-6, and Android Browser, require Android 7.0+ which can run Chrome 80. * Drop support for iOS 7-8, require iOS 9+ (we already require Safari 9 for macOS). --- .github/workflows/browsers-debug.yaml | 48 +++++++++++++++++++++++++++ .github/workflows/browsers-full.yaml | 1 + build/browserstack-full.json | 39 ++++++++-------------- src/core/utilities.js | 2 +- src/globals.js | 4 +-- 5 files changed, 64 insertions(+), 30 deletions(-) create mode 100644 .github/workflows/browsers-debug.yaml diff --git a/.github/workflows/browsers-debug.yaml b/.github/workflows/browsers-debug.yaml new file mode 100644 index 000000000..353cdac14 --- /dev/null +++ b/.github/workflows/browsers-debug.yaml @@ -0,0 +1,48 @@ +name: browsers-debug +on: + # Or manually + workflow_dispatch: + # Or when developing this workflow + push: + paths: + - .github/workflows/browsers-debug.yaml + - build/browserstack-debug.json + +jobs: + run: + name: BrowserStack + if: ${{ github.repository == 'qunitjs/qunit' }} # skip on forks, needs secret + runs-on: ubuntu-latest + 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 18 + uses: actions/setup-node@v4 + with: + node-version: 18.x + + - name: Prepare + run: | + npm ci + npm run build + + - name: Tests + run: npm run browserstack + env: + BROWSERSTACK_JSON: build/browserstack-debug.json + BROWSERSTACK_USERNAME: "${{ secrets.BROWSERSTACK_USERNAME }}" + BROWSERSTACK_KEY: "${{ secrets.BROWSERSTACK_KEY }}" + # Set "project" metadata + TRAVIS_REPO_SLUG: "${{ github.repository }} ${{ github.event_name }}" + # Set "commit" metadata + TRAVIS_COMMIT: "full ${{ github.ref }} ${{ github.sha }}" + TUNNEL_ID: "${{ github.event_name }}-full-${{ github.sha }}" diff --git a/.github/workflows/browsers-full.yaml b/.github/workflows/browsers-full.yaml index 08a0fd4b3..8c67d68fc 100644 --- a/.github/workflows/browsers-full.yaml +++ b/.github/workflows/browsers-full.yaml @@ -9,6 +9,7 @@ on: push: paths: - .github/workflows/browsers-full.yaml + - build/browserstack-full.json jobs: run: diff --git a/build/browserstack-full.json b/build/browserstack-full.json index 253961770..38af174a6 100644 --- a/build/browserstack-full.json +++ b/build/browserstack-full.json @@ -40,41 +40,28 @@ "os_version": "10.0" }, { - "device": "iPhone 8", - "real_mobile": true, - "os": "ios", - "os_version": "12" - } - ], - "@browsers_disabled": [ - { - "@ref": [ - "https://github.com/browserstack/browserstack-runner/issues/245", - "Android 4, Android 5, Android 6" - ] + "os": "android", + "os_version": "7.0", + "device": "Samsung Galaxy S8", + "real_mobile": true }, { - "@ref": [ - "https://github.com/browserstack/browserstack-runner/issues/226", - "Android 7-10", - "iOS 13, 14" - ] + "os": "ios", + "os_version": "11.0" }, { - "device": "Samsung Galaxy S7", - "real_mobile": true, - "os": "android", - "os_version": "6.0" + "os": "ios", + "os_version": "10.3" }, { - "device": null, "os": "ios", - "os_version": "13" - }, + "os_version": "9.3" + } { - "device": null, + "device": "iPhone 8", + "real_mobile": true, "os": "ios", - "os_version": "14" + "os_version": "12" } ] } diff --git a/src/core/utilities.js b/src/core/utilities.js index 12da5bc8c..1547b2182 100644 --- a/src/core/utilities.js +++ b/src/core/utilities.js @@ -74,7 +74,7 @@ export function objectValuesSubset (obj, model) { return subset; } -// Support: IE 11, iOS 7-8 +// Support: IE 11 export function extend (a, b, undefOnly, allProperties) { for (const prop in b) { if (hasOwn.call(b, prop) || allProperties) { diff --git a/src/globals.js b/src/globals.js index d9f064ac0..1fd4f7ea2 100644 --- a/src/globals.js +++ b/src/globals.js @@ -63,9 +63,7 @@ export const sessionStorage = (function () { } }()); -// Basic fallback for ES6 Map -// Support: Safari 7; Map is undefined -// Support: iOS 8; `new Map(iterable)` is not supported +// Basic fallback for ES6 Map and `new Map(iterable)` // // Fallback for ES7 Map#keys // Support: IE 11; Map#keys is undefined