2020 - ' .github/workflows/app-tests.yaml'
2121 - ' .github/workflows/unit-tests.yaml'
2222
23+ concurrency :
24+ group : ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
25+ cancel-in-progress : true
26+
2327jobs :
24- js :
28+ test :
2529 runs-on : ubuntu-latest
30+ strategy :
31+ fail-fast : false
32+ matrix :
33+ symfony : ['6.4.*', '7.3.*']
34+ env :
35+ SYMFONY_REQUIRE : ' ${{ matrix.symfony }}'
2636 steps :
2737 - uses : actions/checkout@v4
38+
2839 - run : npm i -g corepack && corepack enable
2940 - uses : actions/setup-node@v4
3041 with :
@@ -33,21 +44,68 @@ jobs:
3344 cache-dependency-path : |
3445 pnpm-lock.yaml
3546 package.json
36- src/**/package.json
37- - run : pnpm install --frozen-lockfile
3847
39- - name : Install custom browsers
40- run : node ./bin/get_browsers.mjs
48+ - name : Install root JS dependencies
49+ run : pnpm install --frozen-lockfile
50+
51+ - name : Install custom browsers
52+ run : node ./bin/get_browsers.mjs
53+
54+ - name : Install browsers with Playwright
55+ run : pnpm exec playwright install firefox ffmpeg
56+
57+ - uses : shivammathur/setup-php@v2
58+ with :
59+ php-version : 8.2
60+ tools : symfony-cli, flex
61+
62+ - name : Install root PHP dependencies
63+ uses : ramsey/composer-install@v3
64+ with :
65+ working-directory : ${{ github.workspace }}
66+
67+ - name : Build root packages
68+ run : php .github/build-packages.php
4169
42- - name : Install browsers with Playwright
43- run : pnpm exec playwright install firefox ffmpeg
70+ - name : Start Docker containers
71+ run : docker compose up -d --build
72+ working-directory : test_apps/e2e-app
4473
45- # TODO: Install the E2E app + run webserver
46- - run : pnpm run test:browser
74+ - name : Configure E2E app
75+ run : |
76+ echo 'APP_ENV=test' >> .env.local
77+ echo 'APP_DEBUG=0' >> .env.local
78+ working-directory : test_apps/e2e-app
79+
80+ - name : Install E2E PHP dependencies
81+ uses : ramsey/composer-install@v3
82+ with :
83+ working-directory : test_apps/e2e-app
84+
85+ - name : Prepare E2E app
86+ run : |
87+ symfony composer dump-env
88+ symfony console cache:warmup
89+ working-directory : test_apps/e2e-app
90+
91+ - name : Start E2E app
92+ run : symfony serve
93+ working-directory : test_apps/e2e-app
94+
95+ - name : Run browser tests
96+ run : pnpm run test:browser
97+ id : browser-tests
4798
4899 - uses : actions/upload-artifact@v4
49- if : ${{ !cancelled() }}
100+ if : ${{ steps.browser-tests.outcome == 'failure' }}
50101 with :
51- name : playwright- report
102+ name : Playwright report
52103 path : .playwright-report/
53104 retention-days : 7
105+
106+ - uses : actions/upload-artifact@v4
107+ if : ${{ steps.browser-tests.outcome == 'failure' }}
108+ with :
109+ name : Symfony logs
110+ path : test_apps/e2e-app/var/log/
111+ retention-days : 7
0 commit comments