diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cf1cb6d91b5..4b2b55f0d49 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -785,6 +785,11 @@ muzzle-dep-report: - sudo chown -R 1001:1001 .gradle - export GRADLE_USER_HOME=$(pwd)/.gradle - sed -i "s|https://repo.maven.apache.org/maven2/|$MAVEN_REPOSITORY_PROXY|g" .mvn/wrapper/maven-wrapper.properties + # Route Gradle distribution download through MASS pull-through cache + - | + mass_read_host="${MASS_READ_URL#https://}" + mass_read_host="${mass_read_host%/}" + sed -i "/^distributionUrl=/ s|services.gradle.org|${mass_read_host}/internal/artifact/services.gradle.org|" gradle/wrapper/gradle-wrapper.properties - *normalize_node_index - *prepare_test_env # Disable CDS in forked JVMs to avoid SIGSEGVs on Linux arm64. @@ -1107,6 +1112,7 @@ test_smoke_graalvm: needs: *needs_build_tests_smoke tags: [ "arch:amd64" ] variables: + <<: *tier_l_variables GRADLE_TARGET: "stageMainDist :dd-smoke-test:spring-boot-3.0-native:test :dd-smoke-test:quarkus-native:test" CACHE_TYPE: "smoke" CI_NO_SPLIT: "true" @@ -1119,6 +1125,7 @@ test_smoke_graalvm_arm64: extends: .test_job_arm64 tags: [ "arch:arm64" ] variables: + <<: *tier_l_variables GRADLE_TARGET: "stageMainDist :dd-smoke-test:spring-boot-3.0-native:test :dd-smoke-test:quarkus-native:test" CACHE_TYPE: "smoke" CI_NO_SPLIT: "true" diff --git a/dd-smoke-tests/quarkus-native/application/build.gradle b/dd-smoke-tests/quarkus-native/application/build.gradle index 8b9c83da46d..65beb08e810 100644 --- a/dd-smoke-tests/quarkus-native/application/build.gradle +++ b/dd-smoke-tests/quarkus-native/application/build.gradle @@ -15,6 +15,10 @@ if (hasProperty('appBuildDir')) { version = "" +// Avoid unlimited CPU usage on CI. +def isCI = providers.environmentVariable("CI").isPresent() +def ciBuildCpuCount = providers.environmentVariable("KUBERNETES_CPU_REQUEST").getOrElse("4") + dependencies { implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") implementation 'io.quarkus:quarkus-resteasy' @@ -36,11 +40,15 @@ if (hasProperty('agentJar')) { // are not properly tracked by this nested gradle build cache, it needs to be tracked // from the outside (see smokeTestApp). final agentJar = property('agentJar') - System.setProperty( - 'quarkus.native.additional-build-args', - "-J-javaagent:${agentJar}," + - "-J-Ddatadog.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd'T'HH:mm:ss.SSS'Z [dd.trace]'," + - "-J-Ddd.profiling.enabled=true," + - "-march=native" - ) + def nativeBuildArgs = [ + "-J-javaagent:${agentJar}", + "-J-Ddatadog.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd'T'HH:mm:ss.SSS'Z [dd.trace]'", + "-J-Ddd.profiling.enabled=true", + "-march=native", + ] + if (isCI) { + nativeBuildArgs.add("-H:NumberOfThreads=$ciBuildCpuCount") + nativeBuildArgs.add("-J-XX:ActiveProcessorCount=$ciBuildCpuCount") + } + System.setProperty('quarkus.native.additional-build-args', nativeBuildArgs.join(',')) } diff --git a/dd-smoke-tests/quarkus-native/application/src/main/resources/application.properties b/dd-smoke-tests/quarkus-native/application/src/main/resources/application.properties index c913c3f19fe..2e3c80d417d 100644 --- a/dd-smoke-tests/quarkus-native/application/src/main/resources/application.properties +++ b/dd-smoke-tests/quarkus-native/application/src/main/resources/application.properties @@ -1,4 +1,5 @@ quarkus.log.level=INFO quarkus.log.category."datadog.smoketest".level=DEBUG quarkus.log.console.format=%d %-5p [%c] '%t' |MT|%X{dd.trace_id}|MS|%X{dd.span_id}|%m%e%n +quarkus.native.native-image-xmx=4g diff --git a/dd-smoke-tests/spring-boot-3.0-native/application/build.gradle b/dd-smoke-tests/spring-boot-3.0-native/application/build.gradle index 01eb6cecb8e..08545cf1e16 100644 --- a/dd-smoke-tests/spring-boot-3.0-native/application/build.gradle +++ b/dd-smoke-tests/spring-boot-3.0-native/application/build.gradle @@ -13,6 +13,10 @@ apply from: "$sharedConfigDirectory/repositories.gradle" ext.withProfiler = hasProperty('profiler') +// Avoid unlimited CPU usage on CI. +def isCI = providers.environmentVariable("CI").isPresent() +def ciBuildCpuCount = providers.environmentVariable("KUBERNETES_CPU_REQUEST").getOrElse("4") + if (hasProperty('appBuildDir')) { buildDir = property('appBuildDir') } @@ -47,6 +51,10 @@ if (hasProperty('agentPath')) { buildArgs.add("-J-Ddd.profiling.scrub.enabled=true") buildArgs.add("-J-Ddd.profiling.start-force-first=true") } + if (isCI) { + buildArgs.add("-H:NumberOfThreads=$ciBuildCpuCount") + buildArgs.add("-J-XX:ActiveProcessorCount=$ciBuildCpuCount") + } jvmArgs.add("-Xmx4096M") } }