omnibus-mirror
In order to minimize the dependency on external resources during our build and release process, we maintain a mirror of various software dependencies within GitLab resources.
The system consists of two groups, one on GitLab.com, and the other on dev.gitlab.org
-
- Pull mirrors of the upstream source, and push mirrors to the corresponding
dev.gitlab.org
project. - Publically available. Should be available to the
trigger-package
pipeline, as well as community developers for building customomnibus-gitlab
packages
- Pull mirrors of the upstream source, and push mirrors to the corresponding
-
dev.gitlab.org
projects:https://dev.gitlab.org/omnibus-mirror
- Pipelines on
dev.gitlab.org
use these projects to buildomnibus-gitlab
projects. This includes the package releases, as well as builds used by GitLab Team members to build customomnibus-gitlab
packages for all supported platforms.
- Pipelines on
Adding a project
- Log into GitLab.com as the
gitlab-omnibus-mirror-bot
. Login details are in the Build vault in 1Password - Click on New Project to create a project
- Project name: usually should match the upstream name
-
Project URL: Select
gitlab-org/build/omnibus-mirror
from the Groups sub-group in the drop-down - Visibility Level: Set this to Public
- Disable any options that would create files, such as initializing with a
README.md
- Leave the remaining options as their default, and click on Create project
- Set up the pull mirror
- Click Settings -> Repository in the left hand menu
- Click Expand next to the Mirroring repositories option
- Set Git repository URL to the upstream URL we’ll be mirroring
- Change Mirror direction to Pull
- Select the Overwrite diverged branches option
- Click Mirror repository to add the pull mirror. Depending on the size of the repository, this can take a few minutes to run
- Leave this page open as you will need it later
- Log into
dev.gitlab.org
as thebuild_mirror_bot
. Login details are in the Build vault in 1Password - Click on New Project to create a project
- Project name: usually should match the upstream name
-
Project URL: Select
omnibus-mirror
from the Groups sub-group in the drop-down - Visibility Level: Set this to Private
- Leave the remaining options as their default and click on Create project
- Enable the
omnibus-builder
deploy key- Navigate to Settings -> Repository
- Click on Expand next to the Deploy Keys section
- Click the Privately accessible deploy keys tab
- Find the
omnibus-builder deploy key
and click on the Enable button next to it
- Setup the push mirror
- Return to the Mirroring repositories page for the GitLab.com project
- In Git repository URL enter the path to the
dev.gitlab.org
withbuild_mirror_bot@
inserted betweenhttps://
anddev.gitlab.org
- In Password enter the
PAT
from the Build Team Mirror Bot entry in the Build vault in 1 Password - Disable any options that would create files, such as initializing with a
README.md
- Leave the remaining options as their default, and click on Mirror repository
- Click the Update Now button to trigger initial mirroring