diff --git a/action.yml b/action.yml index 4cfa5a8..d8e9f5a 100644 --- a/action.yml +++ b/action.yml @@ -17,8 +17,9 @@ inputs: runs: using: "composite" steps: - - name: Add Gradle init script + - name: Setup TestLens shell: bash + working-directory: ${{ github.workspace }} env: TESTLENS_PROJECT_ID: ${{ github.repository }} TESTLENS_GITHUB_TOKEN: ${{ inputs.github-token }} @@ -27,11 +28,14 @@ runs: WORKSPACE_PATH: ${{ github.workspace }} WRITE_LOG_FILES: ${{ inputs.write-log-files }} run: | + # Setup TestLens + # Add Gradle init script - if [[ "$RUNNER_OS" == "Windows" ]]; then - WORKSPACE_PATH=$(echo "$WORKSPACE_PATH" | sed 's|\\|/|g') - fi - cat << EOF > $GRADLE_USER_HOME/init.d/testlens-init.gradle + if [[ -n "$GRADLE_USER_HOME" ]]; then + if [[ "$RUNNER_OS" == "Windows" ]]; then + WORKSPACE_PATH=$(echo "$WORKSPACE_PATH" | sed 's|\\|/|g') + fi + cat << EOF > $GRADLE_USER_HOME/init.d/testlens-init.gradle gradle.beforeProject { project -> String relativeBuildPath = new File('$WORKSPACE_PATH').relativePath(project.rootDir) if (!relativeBuildPath.startsWith('..') && !new File(relativeBuildPath).isAbsolute()) { @@ -73,3 +77,59 @@ runs: } } EOF + fi + + # Patch Maven Parent POM + if [[ -f "pom.xml" ]]; then + POM_FILE="pom.xml" + PROFILE_CONTENT=" + testlens + + + env.CI + + + + + app.testlens + junit-platform-instrumentation + $INSTRUMENTATION_VERSION + test + + + + + + maven-surefire-plugin + + + $TESTLENS_PROJECT_ID + $TESTLENS_GITHUB_TOKEN + \${project.name} + + + + + + " + CLOSING_PROFILES_TAG_LINE=$({ grep -n "" "$POM_FILE" || true; } | tail -1 | cut -d: -f1) + CLOSING_PROJECT_TAG_LINE=$({ grep -n "" "$POM_FILE" || true; } | tail -1 | cut -d: -f1) + if [ -n "$CLOSING_PROFILES_TAG_LINE" ]; then + { + head -n $((CLOSING_PROFILES_TAG_LINE - 1)) "$POM_FILE" + echo "$PROFILE_CONTENT" + tail -n +$CLOSING_PROFILES_TAG_LINE "$POM_FILE" + } > "${POM_FILE}.tmp" + mv "${POM_FILE}.tmp" "$POM_FILE" + elif [ -n "$CLOSING_PROJECT_TAG_LINE" ]; then + { + head -n $((CLOSING_PROJECT_TAG_LINE - 1)) "$POM_FILE" + echo "" + echo " " + echo "$PROFILE_CONTENT" + echo " " + tail -n +$CLOSING_PROJECT_TAG_LINE "$POM_FILE" + } > "${POM_FILE}.tmp" + mv "${POM_FILE}.tmp" "$POM_FILE" + fi + fi