Skip to content

Support releasing of Gitaly using the API

Yorick Peterse requested to merge gitaly-api-release into master

This adds support for releasing Gitaly using just the GitLab API. The code is broken up into two classes, and one module:

  • GitalyMasterRelease: a release class tasked only with releasing Gitaly from its "master" branch.
  • GitalyMonthlyRelease: a release class tasked only with releasing Gitaly from a stable branch.
  • GitalyRelease: a module providing functionality shared by both the Gitaly release classes.

I opted to use separate classes for the Gitaly release approaches to make it more difficult to run the wrong code for the wrong release. For example, if we used a "master" option of sorts (as the old code does), it would be too easy to forget adding a check for this flag somewhere; resulting in release code running for a "master" release when this is not desired. Using separate classes also makes it easier to wrap your head around what is going on, as the code path won't deviate based on an option set somewhere earlier on in the release process.

See gitlab-com/gl-infra/delivery#895 (closed) for more information.

TODO

  • Add unit tests for GitalyMasterRelease
  • Add unit tests for GitalyMonthlyRelease
  • Add unit tests for GitalyRelease
  • Test master releases using a fork of Gitaly
  • Test monthly releases using a fork of Gitaly
  • Allow using of GitalyMasterRelease using a feature flag
  • Allow using of GitalyMonthlyRelease using a feature flag
Edited by Yorick Peterse

Merge request reports