Skip to content

Commit 52ab033

Browse files
committed
feat: patch pom.xml if present
1 parent aa97c59 commit 52ab033

File tree

1 file changed

+66
-5
lines changed

1 file changed

+66
-5
lines changed

action.yml

Lines changed: 66 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,26 @@ inputs:
1717
runs:
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()) {
@@ -73,3 +78,59 @@ runs:
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

Comments
 (0)