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-gitlab are pending email confirmation.

Changes

  • tools/protogem/build-proto-gem — build script that runs grpc_tools_ruby_protoc and packages the output as a gem
  • tools/protogem/Gemfile + Gemfile.lockgrpc-tools build dependency
  • VERSION — initial 0.1.0 (fallback for local dev; tagged pipelines use $CI_COMMIT_TAG)
  • mise.tomlproto:build-gem and proto:publish-gem tasks
  • .gitlab-ci.ymlbuild-proto-gem and publish-proto-gem CI jobs

How it works

Locally:

mise run proto:build-gem    # → _build/gitlab-gkg-proto-0.1.0.gem

In CI:

  • build-proto-gem runs on MR proto changes, version tags, or manual trigger
  • publish-proto-gem runs 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_KEY CI 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

Merge request reports

Loading