This document describes the migration from GitLab CI to GitHub Actions for Creevey screenshot testing.
| Feature | GitLab CI | GitHub Actions | Status |
|---|---|---|---|
| Selenium Grid | ✅ | ✅ | Migrated |
| Playwright Docker | ✅ | ✅ | Migrated |
| Bun Runtime | ✅ | ✅ | Migrated |
| Multiple package managers | ✅ | ✅ | Migrated |
| Test artifacts | ✅ | ✅ | Migrated |
| PR comments | ❌ | ✅ | New feature |
| Manual workflow trigger | ❌ | ✅ | New feature |
.github/workflows/
├── selenium-template.yml # Reusable Selenium workflow
├── creevey-selenium.yml # Selenium Grid test matrix
├── creevey-playwright.yml # Playwright Docker tests
├── creevey-bun.yml # Bun runtime tests
├── creevey-tests.yml # Unified test runner
└── test-results.yml # PR comment automation
| GitLab CI | GitHub Actions |
|---|---|
services: |
services: (similar) |
image: |
container: |
artifacts: |
actions/upload-artifact |
only: / except: |
on: with conditional if: |
extends: / YAML anchors |
Reusable workflows (uses:) |
parallel: |
strategy: matrix: |
GitLab CI:
services:
- name: selenium/hub:4.18.1-20240220
alias: selenium-hubGitHub Actions:
services:
selenium-hub:
image: selenium/hub:4.18.1-20240220
ports:
- 4444:4444- Push to
mainormaster - Pull requests to
mainormaster
Go to Actions → Creevey Screenshot Tests → Run workflow
Select test type:
all- Run all test suitesselenium- Run only Selenium Grid testsplaywright- Run only Playwright Docker testsbun- Run only Bun runtime tests
Test reports are saved as artifacts for 7 days with the naming pattern:
creevey-report-{fixture-name}
Access artifacts from:
- Workflow run summary page
- PR comments (if enabled)
Ensure the Selenium services are healthy before running tests:
options: >-
--health-cmd "curl -f http://localhost:4444/wd/hub/status || exit 1"
--health-interval 10sPlaywright Docker images include browsers. No separate installation needed.
The workflows auto-detect package managers based on file presence:
pnpm-workspace.yaml→ pnpm.yarnrc.yml→ Yarn- Otherwise → npm