1414jobs :
1515 e2e :
1616 runs-on : ubuntu-latest
17+ strategy :
18+ matrix :
19+ suite : [vitest, cypress]
20+ env :
21+ BUILDX_CACHE_SCOPE : ${{ matrix.suite }}-build
1722
1823 steps :
1924 - name : Checkout code
2025 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
2126
2227 - name : Set up Docker Buildx
2328 uses : docker/setup-buildx-action@d91f340399fb2345e3e45f5461e116862b08261d
29+ with :
30+ install : true
31+
32+ - name : Expose GitHub Runtime for Docker Cache
33+ uses : crazy-max/ghaction-github-runtime@3cb05d89e1f492524af3d41a1c98c83bc3025124 # v3
2434
2535 - name : Set up Docker Compose
2636 uses : docker/setup-compose-action@e29e0ecd235838be5f2e823f8f512a72dc55f662
@@ -41,18 +51,20 @@ jobs:
4151 git config --global init.defaultBranch main
4252
4353 - name : Build and start services with Docker Compose
44- run : docker compose up -d --build --wait || true
54+ run : docker compose -f docker-compose.yml -f docker-compose.ci.yml up -d --build --wait
4555
4656 - name : Debug service state
47- if : always ()
57+ if : failure ()
4858 run : |
4959 docker compose ps
5060 docker compose logs
5161
52- - name : Run E2E tests
62+ - name : Run vitest E2E tests
63+ if : matrix.suite == 'vitest'
5364 run : npm run test:e2e
5465
5566 - name : Run Cypress E2E tests
67+ if : matrix.suite == 'cypress'
5668 run : npm run cypress:run:docker
5769 timeout-minutes : 10
5870 env :
6779
6880 - name : Upload Cypress screenshots on failure
6981 uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
70- if : failure()
82+ if : failure() && matrix.suite == 'cypress'
7183 with :
7284 name : cypress-screenshots
7385 path : cypress/screenshots
7688 - name : Stop services
7789 if : always()
7890 run : docker compose down -v
91+
92+ results :
93+ if : ${{ always() }}
94+ runs-on : ubuntu-latest
95+ name : e2e
96+ needs : [e2e]
97+ steps :
98+ - name : Check e2e results
99+ run : |
100+ result="${{ needs.e2e.result }}"
101+ if [[ "$result" == "success" || "$result" == "skipped" ]]; then
102+ exit 0
103+ else
104+ exit 1
105+ fi
0 commit comments