Skip to content

Commit

Permalink
Re-enable browserstack tests
Browse files Browse the repository at this point in the history
I've also added the LTIs.
  • Loading branch information
jrjohnson committed Mar 24, 2024
1 parent 98b5366 commit 8b20392
Show file tree
Hide file tree
Showing 8 changed files with 205 additions and 41 deletions.
84 changes: 43 additions & 41 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,47 +91,49 @@ jobs:
- name: Build
run: pnpm run --filter ${{matrix.workspace}} build

# browserstack-test:
# name: Browserstack ${{matrix.workspace}} ${{ matrix.launcher }}
# runs-on: ubuntu-latest
# timeout-minutes: 20
# needs: [test]
# strategy:
# fail-fast: false
# max-parallel: 2
# matrix:
# workspace:
# - frontend
# - test-app
# launcher:
# - BS_OSX_Safari
# - BS_MS_Edge
# - BS_IOS_SAFARI
# - BS_CHROME_ANDROID
# steps:
# - uses: actions/checkout@v4
# - uses: pnpm/action-setup@v3
# with:
# version: 8
# - uses: actions/setup-node@v4
# with:
# node-version: 20
# cache: pnpm
# - run: pnpm install
# - name: test:browserstack ${{ matrix.launcher }}
# env:
# BROWSERSTACK_USERNAME: iliosgithub_1UGowwsqE
# # This is in plaintext on purpose. It has no privileged access to anything (this is a free
# # account) and it allows us to run browserstack tests against PRs.
# BROWSERSTACK_ACCESS_KEY: yJjw6sE6izkpUw9oasGT
# # The following is necessary when using browserstack under matrix builds on Github Actions
# # The Job ID + Run ID isn't unique across matrix runs and will fail when run simultaneously
# BROWSERSTACK_LOCAL_ID_SUFFIX: ${{ matrix.launcher }}
# run: |
# pnpm --filter ${{matrix.workspace}} exec ember browserstack:connect
# pnpm --filter ${{matrix.workspace}} exec ember test --test-port=7774 --host=127.0.0.1 --config-file=testem.browserstack.js --launch=${{ matrix.launcher }}
# pnpm --filter ${{matrix.workspace}} exec ember browserstack:disconnect
# pnpm --filter ${{matrix.workspace}} exec ember browserstack:results
browserstack-test:
name: Browserstack ${{matrix.workspace}} ${{ matrix.launcher }}
runs-on: ubuntu-latest
timeout-minutes: 20
needs: [test]
strategy:
fail-fast: false
max-parallel: 2
matrix:
workspace:
- frontend
- test-app
- lti-course-manager
- lti-dashboard
launcher:
- BS_OSX_Safari
- BS_MS_Edge
- BS_IOS_SAFARI
- BS_CHROME_ANDROID
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- run: pnpm install
- name: test:browserstack ${{ matrix.launcher }}
env:
BROWSERSTACK_USERNAME: iliosgithub_1UGowwsqE
# This is in plaintext on purpose. It has no privileged access to anything (this is a free
# account) and it allows us to run browserstack tests against PRs.
BROWSERSTACK_ACCESS_KEY: yJjw6sE6izkpUw9oasGT
# The following is necessary when using browserstack under matrix builds on Github Actions
# The Job ID + Run ID isn't unique across matrix runs and will fail when run simultaneously
BROWSERSTACK_LOCAL_ID_SUFFIX: ${{ matrix.launcher }}
run: |
pnpm --filter ${{matrix.workspace}} exec ember browserstack:connect
pnpm --filter ${{matrix.workspace}} exec ember test --test-port=7774 --host=127.0.0.1 --config-file=testem.browserstack.js --launch=${{ matrix.launcher }}
pnpm --filter ${{matrix.workspace}} exec ember browserstack:disconnect
pnpm --filter ${{matrix.workspace}} exec ember browserstack:results
firefox-test:
name: ${{matrix.workspace}} Firefox ${{ matrix.firefox-version }}
Expand Down
1 change: 1 addition & 0 deletions packages/lti-course-manager/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ module.exports = {
'./.template-lintrc.js',
'./ember-cli-build.js',
'./testem.js',
'./testem.browserstack.js',
'./blueprints/*/index.js',
'./config/**/*.js',
'./lib/*/index.js',
Expand Down
2 changes: 2 additions & 0 deletions packages/lti-course-manager/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
"ember-cli": "~5.6.0",
"ember-cli-app-version": "^6.0.1",
"ember-cli-babel": "^8.2.0",
"ember-cli-browserstack": "^3.0.0",
"ember-cli-clean-css": "^3.0.0",
"ember-cli-dependency-checker": "^3.3.2",
"ember-cli-dependency-lint": "2.0.1",
Expand Down Expand Up @@ -82,6 +83,7 @@
"stylelint-config-standard": "^36.0.0",
"stylelint-prettier": "^5.0.0",
"stylelint-scss": "^6.2.1",
"testem-failure-only-reporter": "^1.0.0",
"tracked-built-ins": "^3.3.0",
"webpack": "^5.89.0"
},
Expand Down
72 changes: 72 additions & 0 deletions packages/lti-course-manager/testem.browserstack.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
const FailureOnlyPerBrowserReporter = require('testem-failure-only-reporter/grouped-by-browser');
const defaultArgs = ['-t', '1800', '--browserstack.video', 'false', '--u', '<url>'];

const BrowserStackLaunchers = {
BS_OSX_Safari: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--os',
'OS X',
'--osv',
'Monterey',
'--b',
'safari',
'--bv',
'latest', // Will always be 15.x on Monterey
...defaultArgs,
],
protocol: 'browser',
},
BS_MS_Edge: {
exe: 'node_modules/.bin/browserstack-launch',
args: ['--os', 'Windows', '--osv', '11', '--b', 'edge', '--bv', '115', ...defaultArgs],
protocol: 'browser',
},
BS_IOS_SAFARI: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--real_mobile',
'true',
'--os',
'ios',
'--osv',
'16',
'--b',
'iphone',
'--device',
'iPhone 14 Pro',
...defaultArgs,
],
protocol: 'browser',
},
BS_CHROME_ANDROID: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--real_mobile',
'true',
'--os',
'android',
'--osv',
'13.0',
'--b',
'android',
'--device',
'Google Pixel 7',
...defaultArgs,
],
protocol: 'browser',
},
};

module.exports = {
test_page: 'tests/index.html?hidepassed&hideskipped&timeout=60000',
timeout: 1800,
reporter: FailureOnlyPerBrowserReporter,
browser_start_timeout: 2000,
browser_disconnect_timeout: 120,
parallel: 4,
disable_watching: true,
launchers: BrowserStackLaunchers,
launch_in_dev: [],
launch_in_ci: Object.keys(BrowserStackLaunchers),
};
1 change: 1 addition & 0 deletions packages/lti-dashboard/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ module.exports = {
'./.template-lintrc.js',
'./ember-cli-build.js',
'./testem.js',
'./testem.browserstack.js',
'./blueprints/*/index.js',
'./config/**/*.js',
'./lib/*/index.js',
Expand Down
2 changes: 2 additions & 0 deletions packages/lti-dashboard/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
"ember-cli": "~5.6.0",
"ember-cli-app-version": "^6.0.1",
"ember-cli-babel": "^8.2.0",
"ember-cli-browserstack": "^3.0.0",
"ember-cli-clean-css": "^3.0.0",
"ember-cli-dependency-checker": "^3.3.2",
"ember-cli-dependency-lint": "2.0.1",
Expand Down Expand Up @@ -82,6 +83,7 @@
"stylelint-config-standard": "^36.0.0",
"stylelint-prettier": "^5.0.0",
"stylelint-scss": "^6.2.1",
"testem-failure-only-reporter": "^1.0.0",
"tracked-built-ins": "^3.3.0",
"webpack": "^5.89.0"
},
Expand Down
72 changes: 72 additions & 0 deletions packages/lti-dashboard/testem.browserstack.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
const FailureOnlyPerBrowserReporter = require('testem-failure-only-reporter/grouped-by-browser');
const defaultArgs = ['-t', '1800', '--browserstack.video', 'false', '--u', '<url>'];

const BrowserStackLaunchers = {
BS_OSX_Safari: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--os',
'OS X',
'--osv',
'Monterey',
'--b',
'safari',
'--bv',
'latest', // Will always be 15.x on Monterey
...defaultArgs,
],
protocol: 'browser',
},
BS_MS_Edge: {
exe: 'node_modules/.bin/browserstack-launch',
args: ['--os', 'Windows', '--osv', '11', '--b', 'edge', '--bv', '115', ...defaultArgs],
protocol: 'browser',
},
BS_IOS_SAFARI: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--real_mobile',
'true',
'--os',
'ios',
'--osv',
'16',
'--b',
'iphone',
'--device',
'iPhone 14 Pro',
...defaultArgs,
],
protocol: 'browser',
},
BS_CHROME_ANDROID: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--real_mobile',
'true',
'--os',
'android',
'--osv',
'13.0',
'--b',
'android',
'--device',
'Google Pixel 7',
...defaultArgs,
],
protocol: 'browser',
},
};

module.exports = {
test_page: 'tests/index.html?hidepassed&hideskipped&timeout=60000',
timeout: 1800,
reporter: FailureOnlyPerBrowserReporter,
browser_start_timeout: 2000,
browser_disconnect_timeout: 120,
parallel: 4,
disable_watching: true,
launchers: BrowserStackLaunchers,
launch_in_dev: [],
launch_in_ci: Object.keys(BrowserStackLaunchers),
};
12 changes: 12 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 8b20392

Please sign in to comment.