1616jobs :
1717 unit-test-and-build :
1818 runs-on : ubuntu-latest
19+ timeout-minutes : 5
1920 steps :
2021 - name : Checkout
2122 uses : actions/checkout@v4
@@ -52,16 +53,18 @@ jobs:
5253
5354 cypress-run :
5455 runs-on : ${{ matrix.os }}
56+ timeout-minutes : 15
5557 strategy :
5658 fail-fast : false
5759 matrix :
58- type : [e2e, component]
59- browser : [firefox, chrome]
6060 os : [ubuntu-latest]
61- # TODO: re-enable once macos build is stable #590
62- # include:
63- # - os: macos-latest
64- # browser: edge
61+ browser : [firefox, chrome]
62+ include :
63+ - os : macos-latest
64+ browser : webkit
65+ - os : windows-latest
66+ browser : edge
67+
6568 env :
6669 COVERAGE : true
6770 steps :
@@ -74,36 +77,41 @@ jobs:
7477 node-version : ' lts/*'
7578 cache : yarn
7679
77- - name : Test (E2E)
78- if : matrix.type == 'e2e'
80+ - name : Install WebKit support
81+ if : matrix.browser == 'webkit'
82+ run : yarn add playwright-webkit --dev --mode=update-lockfile
83+
84+ - name : Component test
85+ # Component tests on webkit hang for some reason
86+ if : matrix.browser != 'webkit'
87+ uses : cypress-io/github-action@v6
88+ with :
89+ component : true
90+ browser : ${{ matrix.browser }}
91+
92+ - name : E2E test
7993 uses : cypress-io/github-action@v6
8094 env :
8195 BASE_URL : http://localhost:4173/
8296 with :
97+ install : ${{ matrix.browser == 'webkit' }} # Only install if not done in previous step
8398 build : yarn run build --mode offline
8499 start : yarn run preview
85100 config : baseUrl=${{ env.BASE_URL }}
86101 wait-on : ${{ env.BASE_URL }}
87102 browser : ${{ matrix.browser }}
88103
89- - name : Test (component)
90- if : matrix.type == 'component'
91- uses : cypress-io/github-action@v6
92- with :
93- component : true
94- browser : ${{ matrix.browser }}
95-
96104 - name : Upload screenshots
97105 uses : actions/upload-artifact@v4
98106 if : failure()
99107 with :
100- name : ' cypress-screenshots_${{ matrix.type }}_${{ matrix. browser }}_${{ matrix.os }}'
108+ name : ' cypress-screenshots_${{ matrix.browser }}_${{ matrix.os }}'
101109 path : tests/e2e/screenshots
102110
103111 - name : Upload coverage artifact
104112 uses : actions/upload-artifact@v4
105113 with :
106- name : ' coverage_${{ matrix.type }}_ ${{ matrix.browser }}_${{ matrix.os }}'
114+ name : ' coverage_cypress_ ${{ matrix.browser }}_${{ matrix.os }}'
107115 path : coverage/lcov.info
108116 retention-days : 4
109117
0 commit comments