Problem/Motivation
The Varbase Project Template runs its automated functional acceptance testing on CircleCI. Moving the tests to GitLab CI keeps the testing close to the code and makes builds easier to maintain.
Proposed resolution
Switch the CI from CircleCI to GitLab CI and run the automated functional acceptance testing there. Expand the coverage to include the contact webform and menus in Drupal Canvas.
Automated functional acceptance testing (already in place)
The suite drives the whole site through a real browser with Playwright + Cucumber-JS BDD (Gherkin .feature files), organised by area:
01-website-base-requirements(8) — front-end pages warm-up, welcome tour, registration, roles, input formats, languages, front-end pages, default theme settings.02-user-management(7) — login, request new password, persistent login, login redirect, role assignment, create users, user protect.03-admin-pages(5) — admin pages, media usage, JSON:API, audit trail, media bulk upload.04-admin-users(3) — masquerade, disable users, admin keyboard navigation.05-content-pages(2) — utility page permissions, standard breadcrumbs.06-content-blog(2) — blog permissions, blog page.07-content-contact(3) — contact us page, Business Contact webform, Newsletter webform.08-content-homepage(1) — homepage.09-drupal-canvas(5) — Canvas pages permissions, Canvas editor, menus, Hero Cards, Hero Slider.10-content-permissions(3) — entityqueue, media library, easy internal linking.11-content-workflow(4) — workflows, scheduling, cloning, trash management.12-content-access-and-lock(2) — access unpublished, content lock.13-varbase-recipes(17) — base recipes: Admin, Users, Content, Page, Blog, Media, Editor, Security, SEO, Workflow, Performance, Webform, API, Auth, i18n, Dev.14-ai(8) — AI recipes: AI Base, AI Editor Assistant, AI Image Alt, AI Taxonomy Tagging, AI Context, AI Safety, AI Guardrails.15-quality(3) — editorial accessibility checker, accessibility (axe-core), performance budgets.
A ddev init-full-automated-testing command gives a deterministic environment: it installs Varbase, applies the base + AI recipes, seeds the per-role testing users, and prepares the site for scripted testing
(uninstall antibot, raise login flood ceilings, zero the Honeypot time trap, disable the floating AI chatbot widget that intercepts clicks, disable CSS/JS aggregation, verbose logging).
- Review the GitLab CI and gitlab-ci-local pipelines.
- Confirm the suite is green on a fresh build via
ddev drush sql:drop; ddev init-full-automated-testing; ddev yarn test:chromium.
Merged changes
CI moved from CircleCI to GitLab CI, and the automated functional acceptance testing (Playwright + Cucumber-JS) was expanded:
- !6, !7 — Business Contact and Newsletter webform coverage on Canvas pages.
- !8 — Menus in Drupal Canvas, plus front-end pages coverage.
- !9 — Hero Card on Canvas coverage, and an editor viewport fix.
- !10 — Hero Slider on Canvas coverage.
- !11 — Sticky header and default theme settings coverage, a performance budget, and a GitLab CI tweak.
- !12 — Warm up front-end image derivatives before the health checks.
Remaining tasks
- ✅ File an issue about this project
- ✅ Addition/Change/Update/Fix to this project
- ✅ Testing to ensure no regression
- ➖ Automated unit/functional testing coverage
- ➖ Developer Documentation support on feature change/addition
- ➖ User Guide Documentation support on feature change/addition
- ➖ UX/UI designer responsibilities
- ➖ Accessibility and Readability
- ✅ Code review from 1 Varbase core team member
- ✅ Full testing and approval
- ✅ Credit contributors
- ✅ Review with the product owner
- ✅ Update Release Notes
- ✅ Release varbase_project-11.0.1, varbase-11.0.0-alpha3, varbase_starter-1.0.0-alpha2
User interface changes
- N/A
API changes
- N/A
Data model changes
- N/A
Release notes snippet
- ci: #3592934 Switch CI from CircleCI to GitLab CI and run the automated functional acceptance testing there
Issue fork varbase_project-3592934
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
- 3592934-front-end-pages-warm-up
changes, plain diff MR !12
- 3592934-sticky-header-functional-testing
changes, plain diff MR !11
- 3592934-hero-slider-canvas-functional-testing
changes, plain diff MR !10
- 3592934-hero-cards-canvas-functional-testing
changes, plain diff MR !9
- 3592934-menus-in-canvas-functional-testing
changes, plain diff MR !8
- 3592934-content-contact-functional-testing
changes, plain diff MR !7
- 3592934-automated-functional-testing
changes, plain diff MR !6
Comments
Comment #35
rajab natshahComment #36
rajab natshahComment #37
rajab natshahComment #38
rajab natshahComment #39
rajab natshahComment #44
rajab natshahComment #46
rajab natshah✅ Released varbase_starter-1.0.0-alpha2
Comment #48
rajab natshah✅ Released varbase-11.0.0-alpha3
Comment #50
rajab natshahComment #51
rajab natshahComment #52
rajab natshahComment #54
rajab natshahUpdated the issue summary with a short list of the merged MRs (!6–!12).
Comment #55
rajab natshahUpdated the test coverage list to match the current tests/features folders (15 areas, with feature counts).
Comment #56
rajab natshah✅ Released varbase_project-11.0.1, varbase-11.0.0-alpha3, varbase_starter-1.0.0-alpha2