Skip to end of metadata
Go to start of metadata

This page details the timeline and process around how OPNFV might transition to a new CI provider in 2020.



Gitlab Discovery and R&D

Create a PoC for running CI in GitLab to validate external hardware and investigate features and functionality.


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


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


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.


  1. Create proof-of-concept (PoC) organization in GitLab
  2. 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
  3. 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"
  4. Remove PoC organization
  5. Shut down Gerrit & Jenkins
  • No labels