@@ -74,16 +74,51 @@ jobs:
7474 working-directory : frontend
7575 run : pnpm install --frozen-lockfile
7676
77+ - name : Get Playwright version
78+ id : playwright-version
79+ working-directory : frontend/web
80+ run : echo "version=$(pnpm list @playwright/test --depth=0 --json | jq -r '.[0].devDependencies["@playwright/test"].version')" >> $GITHUB_OUTPUT
81+
82+ - name : Cache Playwright browsers
83+ uses : actions/cache@v4
84+ id : playwright-cache
85+ with :
86+ path : ~/.cache/ms-playwright
87+ key : ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}-chromium
88+ restore-keys : |
89+ ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}-
90+ ${{ runner.os }}-playwright-
91+
7792 - name : Install Playwright Browsers
93+ if : steps.playwright-cache.outputs.cache-hit != 'true'
7894 working-directory : frontend/web
7995 run : pnpm exec playwright install --with-deps chromium
8096
97+ - name : Install Playwright dependencies (if cache hit)
98+ if : steps.playwright-cache.outputs.cache-hit == 'true'
99+ working-directory : frontend/web
100+ run : pnpm exec playwright install-deps chromium
101+
102+ - name : Set up Docker Buildx
103+ uses : docker/setup-buildx-action@v3
104+
105+ - name : Cache Docker layers
106+ uses : actions/cache@v4
107+ with :
108+ path : /tmp/.buildx-cache
109+ key : ${{ runner.os }}-buildx-${{ github.sha }}
110+ restore-keys : |
111+ ${{ runner.os }}-buildx-
112+
81113 - name : Start E2E environment (Docker Compose)
82114 working-directory : docker
83115 env :
84116 COMPOSE_HTTP_TIMEOUT : 120
117+ DOCKER_BUILDKIT : 1
118+ COMPOSE_DOCKER_CLI_BUILD : 1
85119 run : |
86- echo "🐳 Starting E2E environment..."
120+ echo "🐳 Building and starting E2E environment..."
121+ docker compose -f docker-compose-e2e.yml build --build-arg BUILDKIT_INLINE_CACHE=1
87122 docker compose -f docker-compose-e2e.yml up -d
88123
89124 echo "⏳ Waiting for Postgres to be healthy..."
0 commit comments