Naar inhoud springen

Bazel

Bazel CI op GitHub Actions

De hele waarde van Bazel is caching, en CI gooit de cache bij elke run weg.

24m → 8m
Koude bouw
24m → jaren 90
Warme bouw
96%
Actiecachehit

De hele waarde van Bazel is caching, en CI gooit de cache bij elke run weg.

Waarom het gebeurt

De lokale schijfcache en repositorycache worden niet bewaard, dus elke actie wordt opnieuw uitgevoerd ondanks dat Bazel beter weet.

Wat te veranderen

  1. Wijs --disk_cache naar een persistente map en cache deze tussen uitvoeringen
  2. Voeg een externe cache toe, zodat elke ontwikkelaar en elke CI-taak resultaten deelt
  3. Cache de cache van de repository, zodat externe afhankelijkheden niet opnieuw worden opgehaald
  4. Gebruik --jobs die overeenkomen met het aantal hardloperkernen

Bazel op runnerhut

yaml
jobs:
build:
runs-on: runnerhut-16vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- run: |
bazel build //... \
--disk_cache=~/.cache/bazel \
--repository_cache=~/.cache/bazel-repo \
--jobs=16
Een werkend uitgangspunt

De enige runnerhut-specifieke regel is `runs-on: runnerhut-16vcpu-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.