Repository navigation
Expand file tree
/
Copy pathafter_maven.sh
More file actions
executable file
·100 lines (82 loc) · 3.1 KB
/
Copy pathafter_maven.sh
File metadata and controls
executable file
·100 lines (82 loc) · 3.1 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#This script can be sourced after running maven
# It will fill a fill and source a file 'job.env'
# It will contain a few new variables
JOB_ENV=${JOB_ENV:=job.env}
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
INPUT_DETERMINE_VERSION=${INPUT_DETERMINE_VERSION:='ifempty'}
INPUT_COVERAGE=${INPUT_COVERAGE:='true'}
INPUT_PUBLIC=${INPUT_PUBLIC:='true'}
if [ "$JOB_ENV" = "NO" ] ; then
has_job_env=false
JOB_ENV=$(mktemp);
#echo "No JOB_ENV Using $JOB_ENV"
else
has_job_env=true
fi
setProperty(){
if [ ! -e "$3" ] ; then
touch "$3"
fi
awk -v pat="^$1=" -v value="$1='$2'" 'BEGIN {found=0; } { if ($0 ~ pat) { found=1; print value; } else print $0; } END { if (! found) print value }' "$3" > "$3".tmp
mv -f "$3".tmp "$3" >/dev/null
}
if [ "$INPUT_DETERMINE_VERSION" = 'true' ] || { [ "$INPUT_DETERMINE_VERSION" = 'ifempty' ] && ! grep -s -q '^PROJECT_VERSION=' "$JOB_ENV"; }; then
setProperty "PROJECT_VERSION" "$(mvn -ntp help:evaluate -Dexpression=project.version -q -DforceStdout)" "$JOB_ENV"
fi
mapfile -t counts < <(find . \( -name 'surefire-reports' -o -name 'failsafe-reports' \) -exec find \{\} -name '*.xml' -print0 \; | xargs -0 xsltproc "${SCRIPT_DIR}"/count.xslt | awk -F'[, ]+' 'BEGIN {t=0; f=0; e=0; s=0} {t+=$3; f+=$5; e+=$7; s+=$9} END {print t"\n"f"\n"e"\n"s}' )
setProperty "JOB_ID_BUILD_STAGE" "$CI_JOB_ID" "$JOB_ENV"
setProperty "MAVEN_TESTS_RUN" "${counts[0]}" "$JOB_ENV"
setProperty "MAVEN_TESTS_FAILED" "${counts[1]}" "$JOB_ENV"
setProperty "MAVEN_TESTS_ERROR" "${counts[2]}" "$JOB_ENV"
setProperty "MAVEN_TESTS_SKIPPED" "${counts[3]}" "$JOB_ENV"
setProperty "MAVEN_TESTS_NONSUCCESS" "$((counts[1] + counts[2]))" "$JOB_ENV"
setProperty "SKIP_TESTS" "${SKIP_TESTS}" "$JOB_ENV"
setProperty "SKIP_TESTS_IMPLICIT" "${SKIP_TESTS_IMPLICIT}" "$JOB_ENV"
if [ "${counts[0]}" -eq 0 ]; then
echo no tests found
else
echo "${counts[0]} tests"
fi
if $has_job_env ; then
wc -l "$JOB_ENV"
fi
if [ "$INPUT_INPUT" = "true" ] ; then
if [ -d target/site ]; then
cp -r target/site/* public
else
mkdir -p public
date --iso-8601=seconds > public/date
fi
fi
if [ -e "$JOB_ENV" ] ; then
echo "Sourcing $JOB_ENV"
grep -v "=''$" "$JOB_ENV" | sed "s/='\(.*\)'/=\1/g"
source "$JOB_ENV"
else
echo "$JOB_ENV does not exist"
fi
if [ "$INPUT_COVERAGE" = "true" ] ; then
if find . -name jacoco.xml | grep -q .; then
echo "Determining coverage"
find . -name jacoco.xml -exec xsltproc --novalid "${SCRIPT_DIR}"/jacoco.xslt {} +
else
echo "No jacoco.xml found"
fi
else
echo "Skipping coverage"
fi
if ! $has_job_env; then
rm "$JOB_ENV"
fi
#echo "failures and errors ${SCRIPT_DIR}"
if [ "${counts[0]}" -gt 0 ]; then
if [ $((counts[1] + counts[2])) -gt 0 ] ; then
echo "Making overview"
find . \( -name 'surefire-reports' -o -name 'failsafe-reports' \) -exec find \{\} -name '*.xml' -print0 \; | \
xargs -n 1 -0 stat -c"%Y %y %n" | \
sort -rn | \
awk '{print $5}' | \
xargs xsltproc --stringparam namePad 40 "${SCRIPT_DIR}"/failures_and_errors.xslt
fi
fi
#echo "//failures and errors"