@@ -17,21 +17,26 @@ inputs:
1717runs :
1818 using : " composite"
1919 steps :
20- - name : Add Gradle init script
20+ - name : Setup TestLens
2121 shell : bash
22+ working-directory : ${{ github.workspace }}
2223 env :
2324 TESTLENS_PROJECT_ID : ${{ github.repository }}
2425 TESTLENS_GITHUB_TOKEN : ${{ inputs.github-token }}
2526 INSTRUMENTATION_VERSION : ${{ inputs.instrumentation-version }}
2627 RUNNER_OS : ${{ runner.os }}
2728 WORKSPACE_PATH : ${{ github.workspace }}
2829 WRITE_LOG_FILES : ${{ inputs.write-log-files }}
30+ ESCAPED_PROJECT_NAME : ${{ '${project.name}' }}
2931 run : |
32+ # Setup TestLens
33+
3034 # Add Gradle init script
31- if [[ "$RUNNER_OS" == "Windows" ]]; then
32- WORKSPACE_PATH=$(echo "$WORKSPACE_PATH" | sed 's|\\|/|g')
33- fi
34- cat << EOF > $GRADLE_USER_HOME/init.d/testlens-init.gradle
35+ if [[ -n "$GRADLE_USER_HOME" ]]; then
36+ if [[ "$RUNNER_OS" == "Windows" ]]; then
37+ WORKSPACE_PATH=$(echo "$WORKSPACE_PATH" | sed 's|\\|/|g')
38+ fi
39+ cat << EOF > $GRADLE_USER_HOME/init.d/testlens-init.gradle
3540 gradle.beforeProject { project ->
3641 String relativeBuildPath = new File('$WORKSPACE_PATH').relativePath(project.rootDir)
3742 if (!relativeBuildPath.startsWith('..') && !new File(relativeBuildPath).isAbsolute()) {
7378 }
7479 }
7580 EOF
81+ fi
82+
83+ # Patch Maven Parent POM
84+ if [[ -f "pom.xml" ]]; then
85+ POM_FILE="pom.xml"
86+ PROFILE_CONTENT=" <profile>
87+ <id>testlens</id>
88+ <activation>
89+ <property>
90+ <name>env.CI</name>
91+ </property>
92+ </activation>
93+ <dependencies>
94+ <dependency>
95+ <groupId>app.testlens</groupId>
96+ <artifactId>junit-platform-instrumentation</artifactId>
97+ <version>1.5.0</version>
98+ <scope>test</scope>
99+ </dependency>
100+ </dependencies>
101+ <build>
102+ <plugins>
103+ <plugin>
104+ <artifactId>maven-surefire-plugin</artifactId>
105+ <configuration>
106+ <environmentVariables>
107+ <TESTLENS_PROJECT_ID>$TESTLENS_PROJECT_ID</TESTLENS_PROJECT_ID>
108+ <TESTLENS_GITHUB_TOKEN>$TESTLENS_GITHUB_TOKEN</TESTLENS_GITHUB_TOKEN>
109+ <TESTLENS_WORK_UNIT_PATH>$ESCAPED_PROJECT_NAME</TESTLENS_WORK_UNIT_PATH>
110+ </environmentVariables>
111+ </configuration>
112+ </plugin>
113+ </plugins>
114+ </build>
115+ </profile>"
116+ CLOSING_PROFILES_TAG_LINE=$(grep -n "</profiles>" "$POM_FILE" | tail -1 | cut -d: -f1)
117+ CLOSING_PROJECT_TAG_LINE=$(grep -n "</project>" "$POM_FILE" | tail -1 | cut -d: -f1)
118+ if [ -n "$CLOSING_PROFILES_TAG_LINE" ]; then
119+ {
120+ head -n $((CLOSING_PROFILES_TAG_LINE - 1)) "$POM_FILE"
121+ echo "$PROFILE_CONTENT"
122+ tail -n +$CLOSING_PROFILES_TAG_LINE "$POM_FILE"
123+ } > "${POM_FILE}.tmp"
124+ mv "${POM_FILE}.tmp" "$POM_FILE"
125+ elif [ -n "$CLOSING_PROJECT_TAG_LINE" ]; then
126+ {
127+ head -n $((CLOSING_PROJECT_TAG_LINE - 1)) "$POM_FILE"
128+ echo ""
129+ echo " <profiles>"
130+ echo "$PROFILE_CONTENT"
131+ echo " </profiles>"
132+ tail -n +$CLOSING_PROJECT_TAG_LINE "$POM_FILE"
133+ } > "${POM_FILE}.tmp"
134+ mv "${POM_FILE}.tmp" "$POM_FILE"
135+ fi
136+ fi
0 commit comments