Skip to content

Commit ac7216e

Browse files
chore: replace BrowserStack with Cypress cross-browser matrix
1 parent c8cfd4b commit ac7216e

5 files changed

Lines changed: 83 additions & 85 deletions

File tree

.github/workflows/browserstack.yml

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Cross-Browser Tests
2+
3+
on:
4+
merge_group:
5+
workflow_dispatch:
6+
pull_request:
7+
types:
8+
- opened
9+
- synchronize
10+
push:
11+
branches:
12+
- main
13+
14+
permissions:
15+
contents: read
16+
17+
concurrency:
18+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
19+
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
20+
21+
env:
22+
NODE_VERSION: 22
23+
24+
jobs:
25+
cross-browser:
26+
name: ${{ matrix.browser }}
27+
runs-on: ${{ matrix.os }}
28+
timeout-minutes: 25
29+
30+
strategy:
31+
fail-fast: false
32+
matrix:
33+
os: [windows-latest]
34+
browser: [chrome, edge, firefox]
35+
36+
steps:
37+
- name: Checkout code
38+
uses: actions/checkout@v6
39+
with:
40+
ref: ${{ github.event.pull_request.head.sha || github.ref }}
41+
42+
- name: Build package
43+
uses: ./.github/actions/build
44+
with:
45+
node: ${{ env.NODE_VERSION }}
46+
47+
- name: Run cross-browser tests
48+
uses: cypress-io/github-action@v6
49+
with:
50+
browser: ${{ matrix.browser }}
51+
start: npm run start:local
52+
wait-on: 'http://127.0.0.1:4200'
53+
spec: projects/playground/e2e/integration/playground.cy.ts
54+
config-file: cypress-cross-browser.config.js
55+
install-command: npx cypress install
56+
57+
- name: Upload Cypress screenshots
58+
if: failure()
59+
uses: actions/upload-artifact@v7
60+
with:
61+
name: cypress-screenshots-${{ matrix.browser }}-${{ github.run_id }}
62+
path: projects/playground/e2e/screenshots
63+
retention-days: 30
64+
if-no-files-found: ignore

browserstack.json

Lines changed: 0 additions & 37 deletions
This file was deleted.

cypress-cross-browser.config.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const { defineConfig } = require('cypress');
2+
3+
module.exports = defineConfig({
4+
e2e: {
5+
baseUrl: 'http://127.0.0.1:4200',
6+
specPattern: 'projects/playground/e2e/integration/**/*.cy.ts',
7+
screenshotsFolder: 'projects/playground/e2e/screenshots',
8+
videosFolder: 'projects/playground/e2e/videos',
9+
supportFile: false,
10+
chromeWebSecurity: false,
11+
viewportWidth: 1000,
12+
viewportHeight: 1000,
13+
reporter: 'junit',
14+
reporterOptions: {
15+
mochaFile: 'projects/playground/test-results/e2e/junit-[hash].xml',
16+
},
17+
},
18+
});

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,10 @@
5454
"@types/node": "^22.19.17",
5555
"@typescript-eslint/eslint-plugin": "^8.59.1",
5656
"@typescript-eslint/parser": "^8.59.0",
57-
"browserstack-cypress-cli": "^1.36.5",
5857
"concurrently": "^6.2.0",
5958
"cors": "^2.8.6",
6059
"cross-fetch": "^4.1.0",
61-
"cypress": "^13.17.0",
60+
"cypress": "^14.5.4",
6261
"eslint": "^8.57.0",
6362
"eslint-plugin-import": "latest",
6463
"eslint-plugin-jsdoc": "latest",

0 commit comments

Comments
 (0)