Loading
test(e2e): run the e2e suites against released GitLab versions
What does this MR do and why?
The e2e suites only run against GitLab master, so nothing tests Orbit against the GitLab releases that get Orbit backports, such as the 19.5 backport. This adds an e2e-gitlab-stable job with one matrix entry per released version, starting with 19.5. It is manual on MRs and runs on its own schedule and on the pin-bump MR, so it never blocks a merge.
Related Issues
Relates to the 19.5 Orbit backport: gitlab-org/gitlab!263724 (merged)
Testing
e2e-gitlab-stable: [19-5]: 71 of 71 tests pass on GitLab 19.5 with the backport (chart 10.5.1,19-5-stable-ee@e4383f16).e2e: 71 of 71 pass on master, so the shared scripts still work.- Locally, the master values render the same as on
main. The bump script still bumps master and skips the hand-pinned 19.5 lane.
Performance Analysis
- This merge request does not introduce any performance regression. If a performance regression is expected, explain why.
Agent context: long-form analysis, file-by-file walkthroughs, profiler output, alternatives considered
How the lane works
versions.yamlgets agitlab_lanes."19-5"block with the same keys asgitlab:, plus an optionalrepositoryfor the CNG images.E2E_GITLAB_LANE=19-5makeslib.shsetGITLAB_PINSto that block.publish-siphon-tables.sh,sync-cdc-tables.shandbump-gitlab-pins.shread and write the pins through it.helmfile.yaml.gotmplandvalues/gitlab.yaml.gotmplpick the same block from the env var. Missing optional keys default to the master values.bump-gitlab-pins.shwith the lane takes the newestv19.5.*chart fromcharts.gitlab.io, the19-5-stable-eehead, and the CNG19-5-stabledigests.- The job sets
E2E_SUFFIX=-gl19-5, so its namespaces do not collide with thee2ejob of the same SHA.
Why the 19.5 lane uses cng-mirror images
- The CNG
19-5-stableimages build from thev19.5.1-eetag, which does not have the backport. - The lane uses the
cng-mirrorimages from the backport MR pipeline ate511a413. That commit has the same tree ase4383f16, the19-5-stable-eehead after the merge. - A lane that sets
repositoryis pinned by hand, sobump-gitlab-pins.shskips it. When a 19.5 patch release ships with the backport, removerepositoryto put the lane back on the automated bump.
Done outside the diff
- Published the
siphon-ssot-tablespackage for19-5-stable-ee@e4383f16, which the lane's setup downloads.
Follow-ups
- A maintainer must add a pipeline schedule with
SCHEDULE_ONLY=e2e-gitlab-stable. - Setup does not wait for the Siphon producer to finish its initial snapshots. One 19.5 run failed when the 120 s health check expired with 52 of 84 tables done. The same race can hit
e2eon master.
Edited by Jean-Gabriel Doyon