Story 1.6: Configure MR Blocking and Scheduled Jobs
Sprint Key: 1-6-configure-mr-blocking-and-scheduled-jobs
Epic: 1
PRD: testing-framework
Story 1.6: Configure MR Blocking and Scheduled Jobs
Status: ready-for-dev
Story
As a developer, I want mandatory CI stages to block merge requests and integration/E2E tests to run on schedule, so that every merged change is validated while heavy tests don't slow down reviews.
Acceptance Criteria
-
Given the
.gitlab-ci.ymlhas lint, test, contract, and config stages, When a merge request fails any mandatory stage, Then the MR is blocked and cannot be merged (FR5) - Given the nightly schedule triggers, When the scheduled pipeline runs, Then integration tests run against deployed Docker Compose infrastructure (FR7)
- Given the nightly schedule triggers, When the scheduled pipeline runs, Then E2E tests run against deployed infrastructure
- Given a developer manually triggers the RAG quality pipeline, When the manual pipeline runs, Then RAG quality regression tests execute (FR8)
- Given GPU-dependent jobs in the pipeline, When the runner lacks GPU tags, Then those jobs are skipped with clear skip reporting
- Given scheduled and manual pipeline jobs, When they fail, Then they do NOT block merge requests
- Given an open merge request and a push to the source branch, When both branch and MR pipelines would trigger, Then only the MR pipeline runs (no duplicate pipelines)
Key Design Decision
Uses socket proxy (NOT DinD). The runner enforces privileged=false, cap_drop=ALL, and userns-remap. Docker Compose runs via the host daemon's socket proxy at 127.0.0.1:2375.
Edited by Jérôme Revillard