Run merge request pipelines and pipelines merged to the default branch in Ruby 3
Spinning from &8101 (comment 1214421271)
What we want
Swap to Ruby 3 pipelines
- Merge request pipelines
- Triggered default branch pipelines when merge requests are merged
Stay with Ruby 2 pipelines
- Stable branches
$CI_COMMIT_BRANCH =~ /^[\d-]+-stable(-ee)?$/
- Auto-deploy branches
$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/
- Security branches
$CI_COMMIT_BRANCH =~ /^security\//
- Any other cases which might have been missed
Changes we need to make
- Introduce label and mechanism for
~"pipeline:run-in-ruby2"
so that we can still run Ruby 2 pipeline in merge requests- Swap CI job
verify-ruby-2.7
toverify-ruby-3.0
so we keep the same logic that we always run Ruby 3 before merging into the default branch.
- Swap CI job
- Rename
ruby3
branch toruby2
branch, and change corresponding code and pipeline schedules - Update documentation at:
doc/development/pipelines/index.md
Current versions testing
Ruby 3.0 jobs
- Update workflow in
.gitlab-ci.yml
to swap the mentioned ones to Ruby 3
We most likely need to make all above changes at the same time, beside documentation which can be later or earlier
Rollback steps
- Revert !108039 (merged)
- Revert !108110 (merged)
- Revert !108308 (merged)
- Rename branch
ruby2
toruby3
- Rename branch
ruby2-sync
toruby3-sync
- Update protected branches https://gitlab.com/gitlab-org/gitlab/-/settings/repository
- Update schedules accordingly in https://gitlab.com/gitlab-org/gitlab/-/pipeline_schedules
- Rename variable
RUBY2_SYNC_TOKEN
toRUBY3_SYNC_TOKEN
in https://gitlab.com/gitlab-org/gitlab/-/settings/ci_cd
Edited by Lin Jen-Shin