feat(proto): add gkg-proto Ruby gem build pipeline
Adds tooling to build and publish a gitlab-gkg-proto RubyGem from crates/gkg-server/proto/gkg.proto, following the Gitaly pattern. Rails can then consume proto files via Bundler instead of committing generated files.
Gem published
The gem name gitlab-gkg-proto has been reserved on RubyGems.org (v0.0.1 placeholder). Naming follows the gitlab- prefix convention.
Owners:
| RubyGems handle | Name |
|---|---|
| arivera-gitlab | Angelo Rivera |
| gitlab_rubygems | GitLab (org account) |
| marinjankovski | Marin Jankovski |
| rymai | Rémy Coutable |
| stanhu | Stan Hu |
All co-owners besides
arivera-gitlabare pending email confirmation.
Changes
-
tools/protogem/build-proto-gem— build script that runsgrpc_tools_ruby_protocand packages the output as a gem -
tools/protogem/Gemfile+Gemfile.lock—grpc-toolsbuild dependency -
VERSION— initial0.1.0(fallback for local dev; tagged pipelines use$CI_COMMIT_TAG) -
mise.toml—proto:build-gemandproto:publish-gemtasks -
.gitlab-ci.yml—build-proto-gemandpublish-proto-gemCI jobs
How it works
Locally:
mise run proto:build-gem # → _build/gitlab-gkg-proto-0.1.0.gem
In CI:
-
build-proto-gemruns on MR proto changes, version tags, or manual trigger -
publish-proto-gemruns on version tags only (same trigger as Docker releases via semantic-release) - Version is derived from
$CI_COMMIT_TAG, matching the existing release pipeline - Uses
GEM_HOST_API_KEYCI variable for RubyGems auth (needs to be set in project settings)
Downstream (separate MR in gitlab-org/gitlab)
gem 'gitlab-gkg-proto', '~> 0.1.0'
Closes #161 (closed)
Edited by Michael Angelo Rivera