ci: publish preview image before e2e and parallelize tests

- Push the amd64 preview image digest upfront so a failing E2E can no longer block PR preview publication
- Run publish-preview with always() so the multi-platform manifest still ships when container job fails
- Enable vitest file parallelism for e2e and raise workers to 4 (drop retries to 1)
- Skip obsolete SQLite onboarding restore test
This commit is contained in:
Thomas Camlong committed 2026-08-17 13:01:49 +02:00
1 parent 510845d3b9
commit b2ff7c1011
3 files changed
+32 -29

No files matched your search

+31 -27
View File
@@ -173,33 +173,6 @@ jobs:
DOCKER_BUILDKIT=1 docker build --platform linux/amd64 \
--tag homarr-ci --tag homarr-e2e "${secret_args[@]}" .
- name: Cache Playwright browsers
if: "!env.ACT"
id: playwright-cache
uses: actions/cache@v6
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install Playwright Chromium
if: steps.playwright-cache.outputs.cache-hit != 'true' || env.ACT
run: pnpm exec playwright install --with-deps chromium
- name: Install Playwright system deps
if: steps.playwright-cache.outputs.cache-hit == 'true'
run: pnpm exec playwright install-deps chromium
- name: Run E2E tests
run: pnpm test:e2e
- name: Upload E2E artifacts
if: failure() && !env.ACT
uses: actions/upload-artifact@v7
with:
name: playwright-report
path: e2e/test-results/
retention-days: 7
- name: Log in to GHCR for preview publication
if: |
!env.ACT &&
@@ -240,6 +213,36 @@ jobs:
if: env.ACT
run: echo "Act validated the publication path; external GHCR writes are disabled locally."
- name: Cache Playwright browsers
if: "!env.ACT"
id: playwright-cache
uses: actions/cache@v6
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install Playwright Chromium
if: steps.playwright-cache.outputs.cache-hit != 'true' || env.ACT
run: pnpm exec playwright install --with-deps chromium
- name: Install Playwright system deps
if: steps.playwright-cache.outputs.cache-hit == 'true'
run: pnpm exec playwright install-deps chromium
- name: Run E2E tests
env:
NODE_ENV: development
CI: "true"
run: pnpm exec vitest e2e --retry 1 --maxWorkers 4
- name: Upload E2E artifacts
if: failure() && !env.ACT
uses: actions/upload-artifact@v7
with:
name: playwright-report
path: e2e/test-results/
retention-days: 7
preview-arm64:
name: Build arm64 preview image
needs: fast-gate
@@ -296,6 +299,7 @@ jobs:
name: Publish multi-platform preview image
needs: [container, preview-arm64]
if: |
always() &&
(
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) ||
(github.event_name == 'push' && github.ref == 'refs/heads/release/v2') ||