Naar inhoud springen

Java

Java CI op GitHub Actions

Bij elke build worden dezelfde Maven- of Gradle-afhankelijkheden opnieuw gedownload.

120s → 4s
Afhankelijkheid opgelost
9m → jaren 90
Incrementeel bouwen
91%
Cachehitpercentage

Bij elke build worden dezelfde Maven- of Gradle-afhankelijkheden opnieuw gedownload.

Waarom het gebeurt

~/.m2 en ~/.gradle zijn leeg op een nieuwe runner, en het opstarten van JVM plus annotatieverwerking voegen vaste overhead toe per module.

Wat te veranderen

  1. Cache ~/.m2/repository of ~/.gradle/caches ingetoetst op de build-bestanden
  2. Schakel de Gradle-configuratiecache en build-cache in
  3. Houd de Gradle-daemon levend binnen een taak in plaats van te forken per module
  4. Geef de JVM voldoende hoop - GC-thrash ziet er precies uit als een langzame build

Java op runnerhut

yaml
jobs:
build:
runs-on: runnerhut-8vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with: { java-version: '21', distribution: temurin, cache: gradle }
- run: ./gradlew build --build-cache --configuration-cache
Een werkend uitgangspunt

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