Skip to content

Commit 9553001

Browse files
AlexeyKuznetsov-DDdevflow.devflow-routing-intake
andauthored
Tweaked CI settings for better resources utilization (DataDog#10647)
Fresh branch More resources for forked jobs Merge branch 'master' into alexeyk/tweak-ci-2 experimenting Merge branch 'master' into alexeyk/tweak-ci-2 Experimenting 2 Experimenting 3 Co-authored-by: devflow.devflow-routing-intake <devflow.devflow-routing-intake@kubernetes.us1.ddbuild.io>
1 parent 9fccbf4 commit 9553001

2 files changed

Lines changed: 20 additions & 25 deletions

File tree

.gitlab-ci.yml

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,12 @@ default:
146146
stage: build
147147
variables:
148148
MAVEN_OPTS: "-Xms256M -Xmx1024M"
149-
GRADLE_WORKERS: 2
150-
GRADLE_MEM: 3G
151-
KUBERNETES_CPU_REQUEST: 8
152-
KUBERNETES_MEMORY_REQUEST: 10Gi
153-
KUBERNETES_MEMORY_LIMIT: 10Gi
149+
GRADLE_WORKERS: 6
150+
GRADLE_MEMORY_MIN: 1G
151+
GRADLE_MEMORY_MAX: 4G
152+
KUBERNETES_CPU_REQUEST: 10
153+
KUBERNETES_MEMORY_REQUEST: 20Gi
154+
KUBERNETES_MEMORY_LIMIT: 20Gi
154155
CACHE_TYPE: "lib" #default
155156
FF_USE_FASTZIP: "true"
156157
CACHE_COMPRESSION_LEVEL: "slowest"
@@ -197,11 +198,11 @@ default:
197198
# replace maven central part by MAVEN_REPOSITORY_PROXY in .mvn/wrapper/maven-wrapper.properties
198199
- sed -i "s|https://repo.maven.apache.org/maven2/|$MAVEN_REPOSITORY_PROXY|g" .mvn/wrapper/maven-wrapper.properties
199200
- mkdir -p .mvn/caches
200-
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xms$GRADLE_MEM -Xmx$GRADLE_MEM -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
201+
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xms$GRADLE_MEMORY_MIN -Xmx$GRADLE_MEMORY_MAX -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
201202
- export GRADLE_ARGS=" --build-cache --stacktrace --no-daemon --parallel --max-workers=$GRADLE_WORKERS"
202203
- *normalize_node_index
203-
# for weird reasons, gradle will always "chmod 700" the .gradle folder
204-
# with Gitlab caching, .gradle is always owned by root and thus gradle's chmod invocation fails
204+
# for weird reasons, Gradle will always "chmod 700" the .gradle folder
205+
# with Gitlab caching, .gradle is always owned by root and thus Gradle's chmod invocation fails
205206
# This dance is a hack to have .gradle owned by the Gitlab runner user
206207
- gitlab_section_start "gradle-dance" "Fix .gradle directory permissions"
207208
- cp -r .gradle .gradle-copy
@@ -295,10 +296,6 @@ build_tests:
295296
variables:
296297
BUILD_CACHE_POLICY: push
297298
DEPENDENCY_CACHE_POLICY: pull
298-
GRADLE_MEM: 4G
299-
GRADLE_WORKERS: 3
300-
KUBERNETES_MEMORY_REQUEST: 18Gi
301-
KUBERNETES_MEMORY_LIMIT: 18Gi
302299
parallel:
303300
matrix:
304301
- GRADLE_TARGET: ":baseTest"
@@ -379,11 +376,7 @@ spotless:
379376
stage: tests
380377
needs: []
381378
variables:
382-
# TODO: Latest version of spotless is failing with OOM on CI only.
383-
# Setting 8G memory solving this issue, but we need to solve it eventually.
384-
GRADLE_MEM: 8G
385-
KUBERNETES_MEMORY_REQUEST: 18Gi
386-
KUBERNETES_MEMORY_LIMIT: 18Gi
379+
GRADLE_MEMORY_MAX: 6G
387380
script:
388381
- ./gradlew --version
389382
- ./gradlew spotlessCheck $GRADLE_ARGS
@@ -577,11 +570,6 @@ muzzle-dep-report:
577570
needs: [ build_tests ]
578571
stage: tests
579572
variables:
580-
KUBERNETES_MEMORY_REQUEST: 20Gi
581-
KUBERNETES_MEMORY_LIMIT: 20Gi
582-
KUBERNETES_CPU_REQUEST: 10
583-
GRADLE_WORKERS: 4
584-
GRADLE_MEM: 3G
585573
GRADLE_PARAMS: "-PskipFlakyTests"
586574
CONTINUE_ON_FAILURE: "false"
587575
TESTCONTAINERS_CHECKS_DISABLE: "true"
@@ -607,7 +595,7 @@ muzzle-dep-report:
607595
export PROFILER_COMMAND="-XX:StartFlightRecording=settings=profile,filename=/tmp/${CI_JOB_NAME_SLUG}.jfr,dumponexit=true";
608596
fi
609597
- *prepare_test_env
610-
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xms$GRADLE_MEM -Xmx$GRADLE_MEM $PROFILER_COMMAND -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Djava.util.prefs.userRoot=/tmp/.java/.userPrefs-${CI_JOB_ID}' -Ddatadog.forkedMaxHeapSize=1024M -Ddatadog.forkedMinHeapSize=128M"
598+
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xms$GRADLE_MEMORY_MIN -Xmx$GRADLE_MEMORY_MAX $PROFILER_COMMAND -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Djava.util.prefs.userRoot=/tmp/.java/.userPrefs-${CI_JOB_ID}' -Ddatadog.forkedMinHeapSize=128M -Ddatadog.forkedMaxHeapSize=1024M"
611599
- ./gradlew --version
612600
- ./gradlew $GRADLE_TARGET $GRADLE_PARAMS -PtestJvm=$testJvm -Pslot=$CI_NODE_INDEX/$CI_NODE_TOTAL $GRADLE_ARGS --continue || $CONTINUE_ON_FAILURE
613601
after_script:
@@ -698,7 +686,7 @@ test_inst:
698686
GRADLE_TARGET: ":instrumentationTest"
699687
CACHE_TYPE: "inst"
700688
parallel:
701-
matrix: *test_matrix_6
689+
matrix: *test_matrix_8
702690

703691
test_inst_latest:
704692
extends: .test_job_with_test_agent

dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleLauncherSmokeTest.groovy

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,14 @@ class GradleLauncherSmokeTest extends AbstractGradleTest {
5151
}
5252

5353
private void givenGradleWrapper(String gradleVersion) {
54-
def shellCommandExecutor = new ShellCommandExecutor(projectFolder.toFile(), GRADLE_BUILD_TIMEOUT_MILLIS, ["JAVA_HOME": JAVA_HOME])
54+
def shellCommandExecutor = new ShellCommandExecutor(
55+
projectFolder.toFile(),
56+
GRADLE_BUILD_TIMEOUT_MILLIS,
57+
[
58+
"JAVA_HOME": JAVA_HOME,
59+
"GRADLE_OPTS": "" // avoids inheriting CI's GRADLE_OPTS which might be incompatible with the tested JVM
60+
])
61+
5562
for (int attempt = 0; attempt < GRADLE_WRAPPER_RETRIES; attempt++) {
5663
try {
5764
shellCommandExecutor.executeCommand(IOUtils::readFully, "./gradlew", "wrapper", "--gradle-version", gradleVersion)

0 commit comments

Comments
 (0)