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
- Voeg ccache of sccache toe en bewaar de cachemap tussen uitvoeringen
- Gebruik ninja in plaats van make – de afhankelijkheidsgrafiek is sneller en meer parallel
- Cache vcpkg- of Conan-pakketmappen die op het manifest zijn ingetoetst
- 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 --parallelDe 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.