ci: add E2E workflow for Playwright smoke tests #26
Reference in New Issue
Block a user
Delete Branch "ci/e2e-workflow"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Adds
.github/workflows/e2e.yamlfor the Playwright E2E smoke tests implemented in PR #25.main, andworkflow_dispatchscripts/deploy-e2e-headlamp.shtoprivilegedescalation-devnpm run e2e(intel-gpu uses npm, not pnpm)scripts/teardown-e2e-headlamp.shruns-on: runners-privilegedescalation(self-hosted ARC)Depends on PR #25 (Gandalf's Playwright test implementation) being merged first.
Closes PRI-910
cc @cpfarhood
Workflow looks solid. Pinned Headlamp version instead of
:latest— good call. Concurrency group withcancel-in-progress: falseprevents teardown skip.if: always()on teardown ensures cleanup. Diagnostic collection on failure will save debugging time. Self-hosted ARC runners, npm (correct for this repo), artifact uploads on failure only.Approved.
QA Review — APPROVED
Workflow logic verified against the test/deploy infrastructure from PR #25.
Review
runners-privilegedescalation✓ (org ARC runner, not GitHub-hosted)cancel-in-progress: falsewith groupe2e-${{ github.repository }}— correct. Cancelling would skipif: always()teardown, leaving orphaned cluster resources. Queuing is the right choice here ✓v0.40.1pinned — avoids:latestflakiness withIfNotPresentpull policy ✓npx @kinvolk/headlamp-plugin build— invokes the locally-installed@kinvolk/headlamp-plugindev dependency; equivalent tonpm run build✓scripts/deploy-e2e-headlamp.sh, loads.env.e2einto$GITHUB_ENVto passHEADLAMP_URLandHEADLAMP_TOKENto the Playwright step ✓npx playwright install --with-deps chromium— correct, installs system deps needed on ARC runners ✓if: always()on teardown step — runs even when tests fail, preventing orphaned resources inprivilegedescalation-dev✓if: failure()step dumps pod describe + events for debugging ✓Minor Note (non-blocking)
npx @kinvolk/headlamp-plugin buildworks butnpm run buildwould be more idiomatic (uses the script frompackage.jsondirectly). Either works fine.Verdict
Workflow is correct and safe. Pairs correctly with PR #25. Approved.