@@ -15,6 +15,7 @@ if [ "${1:-}" = '--only-integration-tests' ]; then
15
15
RUN_ONLY_INTEGRATION_TESTS=yes
16
16
fi
17
17
18
+ # shellcheck source=src/main/scripts/ci/common.sh
18
19
. " $( dirname " $0 " ) /common.sh"
19
20
20
21
CS_STATUS=
@@ -23,6 +24,7 @@ LICENSE_STATUS=
23
24
POM_STATUS=
24
25
BOOTLINT_STATUS=
25
26
RFLINT_STATUS=
27
+ SHELLCHECK_STATUS=
26
28
JASMINE_STATUS=
27
29
HTML_STATUS=
28
30
ENFORCER_STATUS=
@@ -32,7 +34,7 @@ FINDBUGS_STATUS=
32
34
VERIFY_STATUS=
33
35
34
36
DANGER_STATUS=skip
35
- if [ " ${SPRING_PROFILES_ACTIVE:- } " = ' travis' -a " ${TRAVIS_PULL_REQUEST:- false} " != ' false' ]; then
37
+ if [ " ${SPRING_PROFILES_ACTIVE:- } " = ' travis' ] && [ " ${TRAVIS_PULL_REQUEST:- false} " != ' false' ]; then
36
38
DANGER_STATUS=
37
39
fi
38
40
@@ -46,20 +48,21 @@ if [ "$RUN_ONLY_INTEGRATION_TESTS" = 'no' ]; then
46
48
if [ -n " ${TRAVIS_COMMIT_RANGE:- } " ]; then
47
49
echo " INFO: Range of the commits to be checked: $TRAVIS_COMMIT_RANGE "
48
50
echo ' INFO: List of the files modified by this commits range:'
49
- git --no-pager diff --name-only $TRAVIS_COMMIT_RANGE -- | sed ' s|^| |' || :
51
+ git --no-pager diff --name-only " $TRAVIS_COMMIT_RANGE " -- | sed ' s|^| |' || :
50
52
51
- MODIFIED_FILES=" $( git --no-pager diff --name-only $TRAVIS_COMMIT_RANGE -- 2> /dev/null || :) "
53
+ MODIFIED_FILES=" $( git --no-pager diff --name-only " $TRAVIS_COMMIT_RANGE " -- 2> /dev/null || :) "
52
54
53
55
if [ -n " $MODIFIED_FILES " ]; then
54
- AFFECTS_POM_XML=" $( echo " $MODIFIED_FILES " | fgrep -xq ' pom.xml' || echo ' no' ) "
55
- AFFECTS_TRAVIS_CFG=" $( echo " $MODIFIED_FILES " | fgrep -xq ' .travis.yml' || echo ' no' ) "
56
- AFFECTS_CS_CFG=" $( echo " $MODIFIED_FILES " | egrep -q ' (checkstyle\.xml|checkstyle-suppressions\.xml)$' || echo ' no' ) "
56
+ AFFECTS_POM_XML=" $( echo " $MODIFIED_FILES " | grep -Fxq ' pom.xml' || echo ' no' ) "
57
+ AFFECTS_TRAVIS_CFG=" $( echo " $MODIFIED_FILES " | grep -Fxq ' .travis.yml' || echo ' no' ) "
58
+ AFFECTS_CS_CFG=" $( echo " $MODIFIED_FILES " | grep -Eq ' (checkstyle\.xml|checkstyle-suppressions\.xml)$' || echo ' no' ) "
57
59
AFFECTS_FB_CFG=" $( echo " $MODIFIED_FILES " | grep -q ' findbugs-filter\.xml$' || echo ' no' ) "
58
60
AFFECTS_PMD_XML=" $( echo " $MODIFIED_FILES " | grep -q ' pmd\.xml$' || echo ' no' ) "
59
61
AFFECTS_JS_FILES=" $( echo " $MODIFIED_FILES " | grep -q ' \.js$' || echo ' no' ) "
60
62
AFFECTS_HTML_FILES=" $( echo " $MODIFIED_FILES " | grep -q ' \.html$' || echo ' no' ) "
61
63
AFFECTS_JAVA_FILES=" $( echo " $MODIFIED_FILES " | grep -q ' \.java$' || echo ' no' ) "
62
64
AFFECTS_ROBOT_FILES=" $( echo " $MODIFIED_FILES " | grep -q ' \.robot$' || echo ' no' ) "
65
+ AFFECTS_SHELL_FILES=" $( echo " $MODIFIED_FILES " | grep -q ' \.sh$' || echo ' no' ) "
63
66
AFFECTS_GROOVY_FILES=" $( echo " $MODIFIED_FILES " | grep -q ' \.groovy$' || echo ' no' ) "
64
67
AFFECTS_PROPERTIES=" $( echo " $MODIFIED_FILES " | grep -q ' \.properties$' || echo ' no' ) "
65
68
AFFECTS_LICENSE_HEADER=" $( echo " $MODIFIED_FILES " | grep -q ' license_header\.txt$' || echo ' no' ) "
@@ -70,9 +73,12 @@ if [ "$RUN_ONLY_INTEGRATION_TESTS" = 'no' ]; then
70
73
71
74
if [ " $AFFECTS_JAVA_FILES " = ' no' ]; then
72
75
[ " $AFFECTS_FB_CFG " != ' no' ] || FINDBUGS_STATUS=skip
73
- [ " $AFFECTS_CS_CFG " != ' no' -o " $AFFECTS_PROPERTIES " != ' no' ] || CS_STATUS=skip
74
76
[ " $AFFECTS_PMD_XML " != ' no' ] || PMD_STATUS=skip
75
77
78
+ if [ " $AFFECTS_CS_CFG " = ' no' ] && [ " $AFFECTS_PROPERTIES " = ' no' ]; then
79
+ CS_STATUS=skip
80
+ fi
81
+
76
82
if [ " $AFFECTS_GROOVY_FILES " = ' no' ]; then
77
83
TEST_STATUS=skip
78
84
@@ -90,6 +96,7 @@ if [ "$RUN_ONLY_INTEGRATION_TESTS" = 'no' ]; then
90
96
HTML_STATUS=skip
91
97
fi
92
98
[ " $AFFECTS_ROBOT_FILES " != ' no' ] || RFLINT_STATUS=skip
99
+ [ " $AFFECTS_SHELL_FILES " != ' no' ] || SHELLCHECK_STATUS=skip
93
100
fi
94
101
echo ' INFO: Some checks could be skipped'
95
102
else
@@ -128,7 +135,7 @@ if [ "$RUN_ONLY_INTEGRATION_TESTS" = 'no' ]; then
128
135
print_status " $POM_STATUS " ' Check sorting of pom.xml'
129
136
130
137
if [ " $BOOTLINT_STATUS " != ' skip' ]; then
131
- find src -type f -name ' *.html' | xargs bootlint \
138
+ find src -type f -name ' *.html' -print0 | xargs -0 bootlint \
132
139
> bootlint.log 2>&1 || BOOTLINT_STATUS=fail
133
140
fi
134
141
print_status " $BOOTLINT_STATUS " ' Run bootlint'
@@ -146,6 +153,16 @@ if [ "$RUN_ONLY_INTEGRATION_TESTS" = 'no' ]; then
146
153
fi
147
154
print_status " $RFLINT_STATUS " ' Run robot framework lint'
148
155
156
+ if [ " $SHELLCHECK_STATUS " != ' skip' ]; then
157
+ SHELL_FILES=( $( find src/main/scripts -type f -name ' *.sh' ) )
158
+ shellcheck \
159
+ --shell bash \
160
+ --format gcc \
161
+ " ${SHELL_FILES[@]} " \
162
+ > shellcheck.log 2>&1 || SHELLCHECK_STATUS=fail
163
+ fi
164
+ print_status " $SHELLCHECK_STATUS " ' Run shellcheck'
165
+
149
166
if [ " $JASMINE_STATUS " != ' skip' ]; then
150
167
mvn --batch-mode jasmine:test \
151
168
> jasmine.log 2>&1 || JASMINE_STATUS=fail
213
230
print_status " $DANGER_STATUS " ' Run danger'
214
231
215
232
if [ " $RUN_ONLY_INTEGRATION_TESTS " = ' no' ]; then
216
- [ " $CS_STATUS " = ' skip' ] || print_log cs.log ' Run CheckStyle'
217
- [ " $PMD_STATUS " = ' skip' ] || print_log pmd.log ' Run PMD'
218
- [ " $LICENSE_STATUS " = ' skip' ] || print_log license.log ' Check license headers'
219
- [ " $POM_STATUS " = ' skip' ] || print_log pom.log ' Check sorting of pom.xml'
220
- [ " $BOOTLINT_STATUS " = ' skip' ] || print_log bootlint.log ' Run bootlint'
221
- [ " $RFLINT_STATUS " = ' skip' ] || print_log rflint.log ' Run robot framework lint'
222
- [ " $JASMINE_STATUS " = ' skip' ] || print_log jasmine.log ' Run JavaScript unit tests'
223
- [ " $HTML_STATUS " = ' skip' ] || print_log validator.log ' Run html5validator'
224
- [ " $ENFORCER_STATUS " = ' skip' ] || print_log enforcer.log ' Run maven-enforcer-plugin'
225
- [ " $TEST_STATUS " = ' skip' ] || print_log test.log ' Run unit tests'
226
- [ " $CODENARC_STATUS " = ' skip' ] || print_log codenarc.log ' Run CodeNarc'
227
- [ " $FINDBUGS_STATUS " = ' skip' ] || print_log findbugs.log ' Run FindBugs'
233
+ [ " $CS_STATUS " = ' skip' ] || print_log cs.log ' Run CheckStyle'
234
+ [ " $PMD_STATUS " = ' skip' ] || print_log pmd.log ' Run PMD'
235
+ [ " $LICENSE_STATUS " = ' skip' ] || print_log license.log ' Check license headers'
236
+ [ " $POM_STATUS " = ' skip' ] || print_log pom.log ' Check sorting of pom.xml'
237
+ [ " $BOOTLINT_STATUS " = ' skip' ] || print_log bootlint.log ' Run bootlint'
238
+ [ " $RFLINT_STATUS " = ' skip' ] || print_log rflint.log ' Run robot framework lint'
239
+ [ " $SHELLCHECK_STATUS " = ' skip' ] || print_log shellcheck.log ' Run shellcheck'
240
+ [ " $JASMINE_STATUS " = ' skip' ] || print_log jasmine.log ' Run JavaScript unit tests'
241
+ [ " $HTML_STATUS " = ' skip' ] || print_log validator.log ' Run html5validator'
242
+ [ " $ENFORCER_STATUS " = ' skip' ] || print_log enforcer.log ' Run maven-enforcer-plugin'
243
+ [ " $TEST_STATUS " = ' skip' ] || print_log test.log ' Run unit tests'
244
+ [ " $CODENARC_STATUS " = ' skip' ] || print_log codenarc.log ' Run CodeNarc'
245
+ [ " $FINDBUGS_STATUS " = ' skip' ] || print_log findbugs.log ' Run FindBugs'
228
246
fi
229
247
230
248
print_log verify.log ' Run integration tests'
@@ -233,8 +251,8 @@ if [ "$DANGER_STATUS" != 'skip' ]; then
233
251
print_log danger.log ' Run danger'
234
252
fi
235
253
236
- rm -f cs.log pmd.log license.log pom.log bootlint.log rflint.log jasmine.log validator.log enforcer.log test.log codenarc.log findbugs.log verify-raw.log verify.log danger.log
254
+ rm -f cs.log pmd.log license.log pom.log bootlint.log rflint.log shellcheck.log jasmine.log validator.log enforcer.log test.log codenarc.log findbugs.log verify-raw.log verify.log danger.log
237
255
238
- if echo " $CS_STATUS$PMD_STATUS$LICENSE_STATUS$POM_STATUS$BOOTLINT_STATUS$RFLINT_STATUS$JASMINE_STATUS$HTML_STATUS$ENFORCER_STATUS$TEST_STATUS$CODENARC_STATUS$FINDBUGS_STATUS$VERIFY_STATUS$DANGER_STATUS " | fgrep -qs ' fail' ; then
256
+ if echo " $CS_STATUS$PMD_STATUS$LICENSE_STATUS$POM_STATUS$BOOTLINT_STATUS$RFLINT_STATUS$SHELLCHECK_STATUS$ JASMINE_STATUS$HTML_STATUS$ENFORCER_STATUS$TEST_STATUS$CODENARC_STATUS$FINDBUGS_STATUS$VERIFY_STATUS$DANGER_STATUS " | grep -Fqs ' fail' ; then
239
257
exit 1
240
258
fi
0 commit comments