CI/CD Packaging Breakout
Summary
As the project currently stands, the build and package process depends on gitlab-org/omnibus-gitlab tagging and is hard-coded into lib/build.rb
. This issue serves as a discussion to evaluate moving gitlab production, hard-coded variables into CI/CD env vars and document the packaging and docker build process.
Proposal
Community contributors have a convenient way to modify and suggest changes to their favorite Git stack. However, this stops short of modifying and and then running omnibus either as a dist specific package or docker image.
If a community member proposes a MR that is not accepted, this would allow the community member to still use that proposal in their own setup by maintaining a patch against a stable omnibus branch. If a developer were to attempt this in the current project, they would have to hack into an undocumented build and package process. Additionally, this project includes internal documentation meant for GitLab employees. However, build and package is only mentioned in passing and might be beneficial to future hires.
Completion of this proposal would appear in two places:
-
Documentation of Build and Package with .gitlab-ci.yml examples. -
rake build
using env vars for customization of GitLab API addresses and docker repository.
References
GitLab API:
- https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/lib/gitlab/build/info.rb#L123
- https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/lib/gitlab/build/info.rb#L147
- https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/lib/gitlab/build/trigger.rb#L10
- https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/lib/gitlab/build/trigger.rb#L45
- https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/lib/gitlab/build/trigger.rb#L70
GitLab Spec:
- https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/spec/gitlab/build/image_spec.rb#L97
- https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/spec/gitlab/tasks/qa_spec.rb#L119
GitLab AWS S3: