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
- Cache de binaire bestanden van de protoc-plug-in die op hun versies zijn ingetoetst
- Gebruik buf met een lockfile zodat afhankelijkheidsmodules in de cache worden opgeslagen
- Gate-generatie op een padfilter voor **/*.proto
- 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-codeDe 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.
Gerelateerd
Terraformterraform init downloadt elke provider bij elke run.PulumiDe installatie van plug-ins en afhankelijkheid wordt vóór elke preview uitgevoerd.KubernetesHet opstarten van een soort- of k3s-cluster duurt minuten voordat de tests beginnen.RoerUpdates van diagramafhankelijkheid en linting lopen elke keer vast.