1111 browserstack-tests :
1212 runs-on : ubuntu-latest
1313
14- strategy :
15- fail-fast : false
16- matrix :
17- # Test in smaller batches to avoid overwhelming BrowserStack
18- batch : [1, 2, 3]
19-
2014 steps :
2115 - name : Checkout code
2216 uses : actions/checkout@v4
@@ -54,41 +48,32 @@ jobs:
5448 - name : Build application
5549 run : pnpm run build
5650
57- - name : Start application server
51+ - name : Verify deployed app accessibility
5852 run : |
59- pnpm run preview &
60- # Wait for server to be ready
61- npx wait-on http://localhost:4173 --timeout 60000
62- env :
63- CI : true
53+ # Test that the deployed app is accessible
54+ curl -I https://simple-todo.le-space.de || {
55+ echo "Warning: Deployed app not accessible"
56+ exit 1
57+ }
58+
59+ - name : Setup BrowserStack Environment
60+ uses : browserstack/github-actions/setup-env@master
61+ with :
62+ username : ${{ secrets.BROWSERSTACK_USERNAME }}
63+ access-key : ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
64+ build-name : " simple-todo-consent-${{ github.sha }}"
65+ project-name : " Simple Todo Consent Screen Tests"
6466
65- - name : Run BrowserStack tests - Batch ${{ matrix.batch }}
66- run : |
67- case ${{ matrix.batch }} in
68- 1)
69- # Desktop browsers - Windows & Linux
70- pnpm run test:browserstack -- --project="Chrome Windows" --project="Firefox Windows" --project="Edge Windows" --project="Chrome Linux"
71- ;;
72- 2)
73- # Desktop browsers - macOS & Opera
74- pnpm run test:browserstack -- --project="Chrome macOS" --project="Firefox macOS" --project="Safari macOS" --project="Opera Windows"
75- ;;
76- 3)
77- # Mobile browsers
78- pnpm run test:browserstack -- --project="iPhone Safari" --project="Android Chrome"
79- ;;
80- esac
67+ - name : Run Playwright Tests on BrowserStack
68+ run : pnpm exec playwright test --config=playwright.browserstack.config.js
8169 env :
82- BROWSERSTACK_USERNAME : ${{ secrets.BROWSERSTACK_USERNAME }}
83- BROWSERSTACK_ACCESS_KEY : ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
84- BROWSERSTACK_BUILD_NAME : " simple-todo-consent-${{ github.sha }}-batch-${{ matrix.batch }}"
8570 CI : true
8671
8772 - name : Upload test results
8873 uses : actions/upload-artifact@v4
8974 if : always()
9075 with :
91- name : browserstack-results-batch-${{ matrix.batch }}
76+ name : browserstack-results
9277 path : |
9378 test-results/
9479 playwright-report/
9883 uses : actions/upload-artifact@v4
9984 if : always()
10085 with :
101- name : playwright-report-batch-${{ matrix.batch }}
86+ name : playwright-report
10287 path : playwright-report/
10388 retention-days : 30
10489
@@ -176,13 +161,11 @@ jobs:
176161 echo "" >> $GITHUB_STEP_SUMMARY
177162 echo "## BrowserStack Tests" >> $GITHUB_STEP_SUMMARY
178163
179- for batch in 1 2 3; do
180- if [ -d "all-results/browserstack-results-batch-$batch" ]; then
181- echo "- ✅ Batch $batch completed" >> $GITHUB_STEP_SUMMARY
182- else
183- echo "- ❌ Batch $batch failed or not found" >> $GITHUB_STEP_SUMMARY
184- fi
185- done
164+ if [ -d "all-results/browserstack-results" ]; then
165+ echo "- ✅ BrowserStack tests completed" >> $GITHUB_STEP_SUMMARY
166+ else
167+ echo "- ❌ BrowserStack tests failed or not found" >> $GITHUB_STEP_SUMMARY
168+ fi
186169
187170 echo "" >> $GITHUB_STEP_SUMMARY
188171 echo "## Local Tests" >> $GITHUB_STEP_SUMMARY
@@ -193,12 +176,11 @@ jobs:
193176 fi
194177
195178 echo "" >> $GITHUB_STEP_SUMMARY
196- echo "## Tested Browsers" >> $GITHUB_STEP_SUMMARY
197- echo "- Chrome on Windows 11, macOS Monterey, Linux Ubuntu 20.04 " >> $GITHUB_STEP_SUMMARY
179+ echo "## Tested Browsers (BrowserStack) " >> $GITHUB_STEP_SUMMARY
180+ echo "- Chrome on Windows 11, macOS Monterey" >> $GITHUB_STEP_SUMMARY
198181 echo "- Firefox on Windows 11, macOS Monterey" >> $GITHUB_STEP_SUMMARY
199182 echo "- Edge on Windows 11" >> $GITHUB_STEP_SUMMARY
200- echo "- Opera on Windows 11" >> $GITHUB_STEP_SUMMARY
201183 echo "- Safari on macOS Monterey, iPhone 14" >> $GITHUB_STEP_SUMMARY
202184 echo "- Chrome on Android (Samsung Galaxy S22)" >> $GITHUB_STEP_SUMMARY
203185 echo "" >> $GITHUB_STEP_SUMMARY
204- echo "**Note**: Brave browser testing requires local setup as it's not available on standard BrowserStack plans. "
186+ echo "**Note**: All browsers are tested in parallel as defined in browserstack.yml "
0 commit comments