This page details the roadmap on how Anuket might transition to Gitlab in 2021.
Roadmap
Q2
Gitlab Discovery and R&D
Create a PoC for running CI in GitLab to validate external hardware and investigate features and functionality.
Q3
TSC Approval
Recommendation presented to the TSC for their approval
GitLab Policy and Secrets
Research into best practices for configuring GitLab to match current project structure and committer rights, implementation of those best practices, and enrollment of secrets/credentials for external services (Dockerhub, etc.).
GitLab Group Enrollment
Setup project groups and invite members to respective teams
Documentation
Document development process, CI, and project configurations - Documents needed for "Training for GitLab-CI"
Git Migration
Configure continuous mirroring of Gerrit to GitLab to make code available while development is still happening in Gerrit
Q4
Job Conversion
Convert project jobs from JJB to GitLab-CI and validate deployments using Lab-as-a-service resources
Governance & Management Job Conversion
Convert self release and INFO.yaml file jobs to GitLab-CI
EasyCLA Support
EasyCLA support for GitLab is planned for Q4 of 2020. See this ticket for tracking updates.
Hardware Enrollment
Switch hardware over from Jenkins JNLP to GitLab Runner (as projects transition).
Training for Gitlab & GitLab-CI
Train the community on the new CI language, development and review process.
Transition from Jenkins to Gitlab-CI
Final commit in Gerrit of .gitlab-ci.yml and setting project to read-only.
Process
- Create proof-of-concept (PoC) organization in GitLab
- While development is still happening on Gerrit:
- Import the project to the PoC organization
- Scope out the CI requirements and resources
- Develop CI by utilizing Lab-as-a-Service resources for virtual and hardware deployments
- Determine cutover time/date once CI verified (for each project)
- Merge new CI configuration in Gerrit
- Enroll and configure hardware resources
- Ensure all Gerrit changes are closed
- Disable replication on Gerrit
- Set project as "read-only"
- Remove PoC organization
- Shut down Gerrit & Jenkins