-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsend-report.sh
More file actions
executable file
Β·51 lines (42 loc) Β· 1.63 KB
/
send-report.sh
File metadata and controls
executable file
Β·51 lines (42 loc) Β· 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash
# This script temporarily modifies the pom.xml file to enable tests,
# runs the tests, generates a Surefire HTML report, and sends it to Slack.
# It also ensures that the original pom.xml is restored afterward.
# Usage: ./send-report.sh
# Ensure the script is run from the root of the project
# macOS and Linux compatible
set -e # Exit immediately if any command fails
# Create a temporary file that won't be committed
backup=$(mktemp)
# Function to restore pom.xml and clean up
restore_pom() {
echo "π Restoring original pom.xml..."
cat "$backup" > pom.xml
rm -f "$backup" # Clean up our temp file
echo "β
Original pom.xml restored."
}
# Set trap to restore pom.xml on exit (normal or error)
trap restore_pom EXIT
echo "π Backing up pom.xml..."
cat pom.xml > "$backup"
echo "π§ Temporarily modifying pom.xml to enable tests..."
# Cross-platform sed command (works on both macOS and Linux)
if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS/BSD sed
sed -i '' 's/<skipTests>true<\/skipTests>/<skipTests>false<\/skipTests>/g' pom.xml
else
# GNU sed (Linux, including GoCD agents)
sed -i 's/<skipTests>true<\/skipTests>/<skipTests>false<\/skipTests>/g' pom.xml
fi
echo "π§ Building project..."
mvn clean package
echo "π§ͺ Running tests..."
mvn clean test
echo "π Generating Surefire HTML report..."
mvn surefire-report:report-only
echo "π€ Sending test report to Slack..."
mvn test-compile exec:java -Dexec.mainClass="com.contentstack.sdk.SanityReport" -Dexec.classpathScope=test
# Restore pom.xml and clean up
restore_pom
trap - EXIT # Remove the trap
echo "β
Done. All tests complete and original pom.xml restored."