Naar inhoud springen

Protobuf en gRPC

Protobuf en gRPC CI op GitHub Actions

Het genereren van code wordt bij elke build uitgevoerd, zelfs als er geen .proto is gewijzigd.

Jaren 70 → 6s
Codegen

Het genereren van code wordt bij elke build uitgevoerd, zelfs als er geen .proto is gewijzigd.

Waarom het gebeurt

protoc-plug-ins worden per run geïnstalleerd en de generatie is niet afhankelijk van proto-wijzigingen.

Wat te veranderen

  1. Cache de binaire bestanden van de protoc-plug-in die op hun versies zijn ingetoetst
  2. Gebruik buf met een lockfile zodat afhankelijkheidsmodules in de cache worden opgeslagen
  3. Gate-generatie op een padfilter voor **/*.proto
  4. Controleer de gegenereerde code in de repository en verifieer deze in CI in plaats van deze opnieuw te genereren

Protobuf en gRPC op runnerhut

yaml
jobs:
generate:
runs-on: runnerhut-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- uses: bufbuild/buf-action@v1
with: { setup_only: true }
- run: buf generate && git diff --exit-code
Een werkend uitgangspunt

De enige runnerhut-specifieke regel is `runs-on: runnerhut-4vcpu-ubuntu-2404`. Al het andere is standaard GitHub Actions — dezelfde acties, dezelfde geheimen en hetzelfde machtigingsmodel dat u vandaag de dag gebruikt.

Je volgende build kan twee keer zo snel zijn, voor de halve prijs

Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.