Naar inhoud springen

C++

C++ CI op GitHub Actions

Elke vertaaleenheid wordt opnieuw samengesteld, zelfs als er niets relevants is veranderd.

28m → 6m
Volledige bouw
28m → jaren 90
Incrementeel
88%
ccache-hit

Elke vertaaleenheid wordt opnieuw samengesteld, zelfs als er niets relevants is veranderd.

Waarom het gebeurt

Er is geen compilercache geconfigureerd, dus ccache of sccache kunnen identieke compilaties niet kortsluiten.

Wat te veranderen

  1. Voeg ccache of sccache toe en bewaar de cachemap tussen uitvoeringen
  2. Gebruik ninja in plaats van make – de afhankelijkheidsgrafiek is sneller en meer parallel
  3. Cache vcpkg- of Conan-pakketmappen die op het manifest zijn ingetoetst
  4. Bouw voort op een runner met 32 vCPU; C++-compilatie loopt bijna perfect parallel

C++ op runnerhut

yaml
jobs:
build:
runs-on: runnerhut-32vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- uses: hendrikmuhs/ccache-action@v1
- run: cmake -B build -G Ninja -DCMAKE_C_COMPILER_LAUNCHER=ccache
- run: cmake --build build --parallel
Een werkend uitgangspunt

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