-
Notifications
You must be signed in to change notification settings - Fork 27
120 lines (114 loc) · 3.92 KB
/
ui.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
name: User Interface Tests
on:
pull_request:
types: [labeled, opened, synchronize]
concurrency:
group: ui-${{ github.head_ref || github.ref }}
cancel-in-progress: true
env:
SW_DISABLED: true
COVERAGE: false
jobs:
browserstack-test:
name: Browser Stack Test
runs-on: ubuntu-latest
timeout-minutes: 120
if: contains(github.event.pull_request.labels.*.name, 'ready to merge')
strategy:
fail-fast: false
max-parallel: 1
matrix:
workspace:
- frontend
- test-app
launcher:
- BS_OSX_Safari
- BS_IOS_SAFARI
- BS_CHROME_ANDROID
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- run: pnpm install
- name: test:browserstack ${{matrix.workspace}} ${{ 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
# Define a local identifier to avoid conflicts with other tests
# We concat unique info about this workflow, job, and run along with the specific matrix run to create something unique
BROWSERSTACK_LOCAL_IDENTIFIER: ui_browserstack-test-${{ github.run_id}}-${{matrix.workspace}}-${{ 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: Firefox Tests
runs-on: ubuntu-latest
timeout-minutes: 20
if: contains(github.event.pull_request.labels.*.name, 'ready to merge')
strategy:
fail-fast: false
matrix:
workspace:
- frontend
- test-app
- lti-course-manager
- lti-dashboard
firefox-version: [latest-esr]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- run: pnpm install
- name: Setup firefox
uses: browser-actions/setup-firefox@latest
with:
firefox-version: ${{ matrix.firefox-version }}
- run: firefox --version
- name: test
run: pnpm --filter ${{matrix.workspace}} exec ember exam --parallel=3 --load-balance --write-execution-file --launch=Firefox
- uses: actions/upload-artifact@v4
if: failure()
with:
name: replay-${{matrix.workspace}}-firefox-${{ matrix.firefox-version }}.json
path: ./packages/${{matrix.workspace}}/test-execution-*.json
retention-days: 7
percy:
name: Test and Capture Screenshots
runs-on: ubuntu-latest
needs: [firefox-test, browserstack-test]
timeout-minutes: 20
if: contains(github.event.pull_request.labels.*.name, 'ready to merge')
strategy:
fail-fast: false
matrix:
workspace:
- frontend
- test-app
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- run: pnpm install
- name: Run Percy Tests
run: pnpm --filter ${{ matrix.workspace }} exec percy exec -- ember test
env:
PERCY_TOKEN: "web_1899a9764a4891f3a19b87e52aa1ae038359e28ba550daa6bad00d0e0a230a33"