From 8c4ef9264bbe19cfbadd9177c669d12e2ada855d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl?= Date: Tue, 4 Aug 2026 12:55:48 +0200 Subject: [PATCH] ci: record why the Gradle heap is reduced --- .github/workflows/build.yml | 11 +++++++---- .github/workflows/build_enterprise.yml | 11 +++++++---- .github/workflows/maestro-local.yml | 11 +++++++---- .github/workflows/quality.yml | 11 +++++++---- .github/workflows/recordScreenshots.yml | 11 +++++++---- .github/workflows/sonar.yml | 11 +++++++---- .github/workflows/tests.yml | 11 +++++++---- 7 files changed, 49 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6e0ee5bf68..0300faeab2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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 diff --git a/.github/workflows/build_enterprise.yml b/.github/workflows/build_enterprise.yml index ce2f444cb9..ae34dd22aa 100644 --- a/.github/workflows/build_enterprise.yml +++ b/.github/workflows/build_enterprise.yml @@ -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 diff --git a/.github/workflows/maestro-local.yml b/.github/workflows/maestro-local.yml index c15d12e617..c7f93d2d12 100644 --- a/.github/workflows/maestro-local.yml +++ b/.github/workflows/maestro-local.yml @@ -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 diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 2d3af79c16..711b181c01 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -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 diff --git a/.github/workflows/recordScreenshots.yml b/.github/workflows/recordScreenshots.yml index 14e6e6cb39..260fd9253e 100644 --- a/.github/workflows/recordScreenshots.yml +++ b/.github/workflows/recordScreenshots.yml @@ -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 diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 3c7d0cde8b..d7d088587f 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -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) }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d1eb35fca3..c156cd8f41 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -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