11#! /usr/bin/env bash
22SERVICE_NAME=" dd-trace-java"
33CACHE_TYPE=$1
4- TEST_JVM=$2
4+ TEST_JVM=${2 :- }
55
66# CI_JOB_NAME, CI_NODE_INDEX, and CI_NODE_TOTAL are read from GitLab CI environment
77
88# JAVA_???_HOME are set in the base image for each used JDK https://github.com/DataDog/dd-trace-java-docker-build/blob/master/Dockerfile#L86
9- JAVA_HOME=" JAVA_${TEST_JVM} _HOME"
10- JAVA_BIN=" ${! JAVA_HOME} /bin/java"
11- if [ ! -x " $JAVA_BIN " ]; then
12- JAVA_BIN=$( which java)
9+ JAVA_PROPS=" "
10+ if [ -n " $TEST_JVM " ]; then
11+ JAVA_BIN=" "
12+ if [[ " $TEST_JVM " =~ ^[A-Za-z0-9_]+$ ]]; then
13+ JAVA_HOME_VAR=" JAVA_${TEST_JVM} _HOME"
14+ JAVA_HOME_VALUE=" ${! JAVA_HOME_VAR} "
15+ if [ -n " $JAVA_HOME_VALUE " ] && [ -x " $JAVA_HOME_VALUE /bin/java" ]; then
16+ JAVA_BIN=" $JAVA_HOME_VALUE /bin/java"
17+ fi
18+ fi
19+ if [ -z " $JAVA_BIN " ]; then
20+ JAVA_BIN=" $( command -v java) "
21+ fi
22+ JAVA_PROPS=$( $JAVA_BIN -XshowSettings:properties -version 2>&1 )
1323fi
1424
15- # Extract Java properties from the JVM used to run the tests
16- JAVA_PROPS=$( $JAVA_BIN -XshowSettings:properties -version 2>&1 )
1725java_prop () {
1826 local PROP_NAME=$1
1927 echo " $JAVA_PROPS " | grep " $PROP_NAME " | head -n1 | cut -d' =' -f2 | xargs
@@ -27,11 +35,23 @@ junit_upload() {
2735 # Build custom tags array directly from arguments
2836 local custom_tags_args=()
2937
30- # Extract job base name from CI_JOB_NAME (strip matrix suffix)
38+ # Extract job base name from CI_JOB_NAME.
39+ # Handles:
40+ # - matrix suffix format: "job-name: [value, 1/6]" -> "job-name"
41+ # - split suffix format: "job-name 1/6" -> "job-name"
3142 local job_base_name=" ${CI_JOB_NAME%%:* } "
43+ job_base_name=" $( echo " $job_base_name " | sed -E ' s/[[:space:]]+[0-9]+\/[0-9]+$//' ) "
3244
3345 # Add custom test configuration tags
34- custom_tags_args+=(--tags " test.configuration.jvm:${TEST_JVM} " )
46+ if [ -n " $TEST_JVM " ]; then
47+ custom_tags_args+=(--tags " test.configuration.jvm:${TEST_JVM} " )
48+ custom_tags_args+=(--tags " runtime.name:$( java_prop java.runtime.name) " )
49+ custom_tags_args+=(--tags " runtime.vendor:$( java_prop java.vendor) " )
50+ custom_tags_args+=(--tags " runtime.version:$( java_prop java.version) " )
51+ custom_tags_args+=(--tags " os.architecture:$( java_prop os.arch) " )
52+ custom_tags_args+=(--tags " os.platform:$( java_prop os.name) " )
53+ custom_tags_args+=(--tags " os.version:$( java_prop os.version) " )
54+ fi
3555 if [ -n " $CI_NODE_INDEX " ] && [ -n " $CI_NODE_TOTAL " ]; then
3656 custom_tags_args+=(--tags " test.configuration.split:${CI_NODE_INDEX} /${CI_NODE_TOTAL} " )
3757 fi
@@ -43,12 +63,6 @@ junit_upload() {
4363 datadog-ci junit upload --service $SERVICE_NAME \
4464 --logs \
4565 --tags " test.traits:{\" category\" :[\" $CACHE_TYPE \" ]}" \
46- --tags " runtime.name:$( java_prop java.runtime.name) " \
47- --tags " runtime.vendor:$( java_prop java.vendor) " \
48- --tags " runtime.version:$( java_prop java.version) " \
49- --tags " os.architecture:$( java_prop os.arch) " \
50- --tags " os.platform:$( java_prop os.name) " \
51- --tags " os.version:$( java_prop os.version) " \
5266 --tags " git.repository_url:https://github.com/DataDog/dd-trace-java" \
5367 " ${custom_tags_args[@]} " \
5468 ./results
0 commit comments