ci: record why the Gradle heap is reduced

This commit is contained in:
2026-08-04 12:55:48 +02:00
parent 409a1e5b90
commit 8c4ef9264b
7 changed files with 49 additions and 28 deletions
+7 -4
View File
@@ -15,10 +15,13 @@ permissions:
# Enrich gradle.properties for CI/CD
env:
# Sized for the self-hosted incus containers, matching
# healthchat-release-playstore.yml. Upstream's -Xmx8g with a 4 GB Kotlin daemon is
# sized for GitHub's hosted VMs; here the daemon gets SIGKILLed mid-build and Gradle
# reports "the daemon has disappeared" with no OutOfMemoryError and no heap dump.
# Reduced from upstream's -Xmx8g / 4 GB Kotlin daemon for the self-hosted runners.
# Each incus container reports 48 GiB and 8 cores, so a single build has ample room —
# but the containers are oversubscribed against their host, and two concurrent heavy
# Gradle jobs get their daemons SIGKILLed ("the daemon has disappeared", no
# OutOfMemoryError, no heap dump). Running the same job alone succeeds. Lower heaps
# make two builds likelier to coexist; the real fix is sizing the containers to the
# host. See the "Report runner capacity" step.
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx2g
CI_GRADLE_ARG_PROPERTIES: --stacktrace -Dsonar.gradle.skipCompile=true --no-configuration-cache
+7 -4
View File
@@ -15,10 +15,13 @@ permissions:
# Enrich gradle.properties for CI/CD
env:
# Sized for the self-hosted incus containers, matching
# healthchat-release-playstore.yml. Upstream's -Xmx8g with a 4 GB Kotlin daemon is
# sized for GitHub's hosted VMs; here the daemon gets SIGKILLed mid-build and Gradle
# reports "the daemon has disappeared" with no OutOfMemoryError and no heap dump.
# Reduced from upstream's -Xmx8g / 4 GB Kotlin daemon for the self-hosted runners.
# Each incus container reports 48 GiB and 8 cores, so a single build has ample room —
# but the containers are oversubscribed against their host, and two concurrent heavy
# Gradle jobs get their daemons SIGKILLed ("the daemon has disappeared", no
# OutOfMemoryError, no heap dump). Running the same job alone succeeds. Lower heaps
# make two builds likelier to coexist; the real fix is sizing the containers to the
# host. See the "Report runner capacity" step.
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx2g
CI_GRADLE_ARG_PROPERTIES: --stacktrace -Dsonar.gradle.skipCompile=true --no-configuration-cache
+7 -4
View File
@@ -13,10 +13,13 @@ permissions:
# Enrich gradle.properties for CI/CD
env:
# Sized for the self-hosted incus containers, matching
# healthchat-release-playstore.yml. Upstream's -Xmx8g with a 4 GB Kotlin daemon is
# sized for GitHub's hosted VMs; here the daemon gets SIGKILLed mid-build and Gradle
# reports "the daemon has disappeared" with no OutOfMemoryError and no heap dump.
# Reduced from upstream's -Xmx8g / 4 GB Kotlin daemon for the self-hosted runners.
# Each incus container reports 48 GiB and 8 cores, so a single build has ample room —
# but the containers are oversubscribed against their host, and two concurrent heavy
# Gradle jobs get their daemons SIGKILLed ("the daemon has disappeared", no
# OutOfMemoryError, no heap dump). Running the same job alone succeeds. Lower heaps
# make two builds likelier to coexist; the real fix is sizing the containers to the
# host. See the "Report runner capacity" step.
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx2g
CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache
ARCH: x86_64
+7 -4
View File
@@ -15,10 +15,13 @@ permissions:
# Enrich gradle.properties for CI/CD
env:
# Sized for the self-hosted incus containers, matching
# healthchat-release-playstore.yml. Upstream's -Xmx8g with a 4 GB Kotlin daemon is
# sized for GitHub's hosted VMs; here the daemon gets SIGKILLed mid-build and Gradle
# reports "the daemon has disappeared" with no OutOfMemoryError and no heap dump.
# Reduced from upstream's -Xmx8g / 4 GB Kotlin daemon for the self-hosted runners.
# Each incus container reports 48 GiB and 8 cores, so a single build has ample room —
# but the containers are oversubscribed against their host, and two concurrent heavy
# Gradle jobs get their daemons SIGKILLed ("the daemon has disappeared", no
# OutOfMemoryError, no heap dump). Running the same job alone succeeds. Lower heaps
# make two builds likelier to coexist; the real fix is sizing the containers to the
# host. See the "Report runner capacity" step.
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx2g
CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache
+7 -4
View File
@@ -13,10 +13,13 @@ permissions:
# Enrich gradle.properties for CI/CD
env:
# Sized for the self-hosted incus containers, matching
# healthchat-release-playstore.yml. Upstream's -Xmx8g with a 4 GB Kotlin daemon is
# sized for GitHub's hosted VMs; here the daemon gets SIGKILLed mid-build and Gradle
# reports "the daemon has disappeared" with no OutOfMemoryError and no heap dump.
# Reduced from upstream's -Xmx8g / 4 GB Kotlin daemon for the self-hosted runners.
# Each incus container reports 48 GiB and 8 cores, so a single build has ample room —
# but the containers are oversubscribed against their host, and two concurrent heavy
# Gradle jobs get their daemons SIGKILLed ("the daemon has disappeared", no
# OutOfMemoryError, no heap dump). Running the same job alone succeeds. Lower heaps
# make two builds likelier to coexist; the real fix is sizing the containers to the
# host. See the "Report runner capacity" step.
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx2g -Dsonar.gradle.skipCompile=true
CI_GRADLE_ARG_PROPERTIES: --no-configuration-cache
+7 -4
View File
@@ -15,10 +15,13 @@ permissions:
# Enrich gradle.properties for CI/CD
env:
# Sized for the self-hosted incus containers, matching
# healthchat-release-playstore.yml. Upstream's -Xmx8g with a 4 GB Kotlin daemon is
# sized for GitHub's hosted VMs; here the daemon gets SIGKILLed mid-build and Gradle
# reports "the daemon has disappeared" with no OutOfMemoryError and no heap dump.
# Reduced from upstream's -Xmx8g / 4 GB Kotlin daemon for the self-hosted runners.
# Each incus container reports 48 GiB and 8 cores, so a single build has ample room —
# but the containers are oversubscribed against their host, and two concurrent heavy
# Gradle jobs get their daemons SIGKILLed ("the daemon has disappeared", no
# OutOfMemoryError, no heap dump). Running the same job alone succeeds. Lower heaps
# make two builds likelier to coexist; the real fix is sizing the containers to the
# host. See the "Report runner capacity" step.
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx2g
CI_GRADLE_ARG_PROPERTIES: --stacktrace --warn -Dsonar.gradle.skipCompile=true --no-configuration-cache
GROUP: ${{ format('sonar-{0}', github.ref) }}
+7 -4
View File
@@ -15,10 +15,13 @@ permissions:
# Enrich gradle.properties for CI/CD
env:
# Sized for the self-hosted incus containers, matching
# healthchat-release-playstore.yml. Upstream's -Xmx8g with a 4 GB Kotlin daemon is
# sized for GitHub's hosted VMs; here the daemon gets SIGKILLed mid-build and Gradle
# reports "the daemon has disappeared" with no OutOfMemoryError and no heap dump.
# Reduced from upstream's -Xmx8g / 4 GB Kotlin daemon for the self-hosted runners.
# Each incus container reports 48 GiB and 8 cores, so a single build has ample room —
# but the containers are oversubscribed against their host, and two concurrent heavy
# Gradle jobs get their daemons SIGKILLed ("the daemon has disappeared", no
# OutOfMemoryError, no heap dump). Running the same job alone succeeds. Lower heaps
# make two builds likelier to coexist; the real fix is sizing the containers to the
# host. See the "Report runner capacity" step.
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx6g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options=-Xmx2g -XX:+UseG1GC
CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache