aboutsummaryrefslogtreecommitdiffhomepage
path: root/.travis-ci.sh
diff options
context:
space:
mode:
Diffstat (limited to '.travis-ci.sh')
-rw-r--r--.travis-ci.sh84
1 files changed, 84 insertions, 0 deletions
diff --git a/.travis-ci.sh b/.travis-ci.sh
new file mode 100644
index 0000000..da36c17
--- /dev/null
+++ b/.travis-ci.sh
@@ -0,0 +1,84 @@
+#!/bin/bash
+
+# This script is triggered from the script section of .travis.yml
+# It runs the appropriate commands depending on the task requested.
+
+set -e
+
+COVERITY_SCAN_BUILD_URL="https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh"
+
+SPELLINGBLACKLIST=$(cat <<-BLACKLIST
+ -wholename "./.git/*"
+BLACKLIST
+)
+
+if [[ $TASK = 'spellintian' ]]; then
+ # run spellintian only if it is the requested task, ignoring duplicate words
+ spellingfiles=$(eval "find ./ -type f -and ! \( \
+ $SPELLINGBLACKLIST \
+ \) | xargs")
+ # count the number of spellintian errors, ignoring duplicate words
+ spellingerrors=$(zrun spellintian $spellingfiles 2>&1 | grep -v "\(duplicate word\)" | wc -l)
+ if [[ $spellingerrors -ne 0 ]]; then
+ # print the output for info
+ zrun spellintian $spellingfiles | grep -v "\(duplicate word\)"
+ echo "Found $spellingerrors spelling errors via spellintian, ignoring duplicates"
+ exit 1;
+ else
+ echo "Found $spellingerrors spelling errors via spellintian, ignoring duplicates"
+ fi;
+elif [[ $TASK = 'spellintian-duplicates' ]]; then
+ # run spellintian only if it is the requested task
+ spellingfiles=$(eval "find ./ -type f -and ! \( \
+ $SPELLINGBLACKLIST \
+ \) | xargs")
+ # count the number of spellintian errors
+ spellingerrors=$(zrun spellintian $spellingfiles 2>&1 | wc -l)
+ if [[ $spellingerrors -ne 0 ]]; then
+ # print the output for info
+ zrun spellintian $spellingfiles
+ echo "Found $spellingerrors spelling errors via spellintian"
+ exit 1;
+ else
+ echo "Found $spellingerrors spelling errors via spellintian"
+ fi;
+elif [[ $TASK = 'codespell' ]]; then
+ # run codespell only if it is the requested task
+ spellingfiles=$(eval "find ./ -type f -and ! \( \
+ $SPELLINGBLACKLIST \
+ \) | xargs")
+ # count the number of codespell errors
+ spellingerrors=$(zrun codespell --check-filenames --check-hidden --quiet 2 --regex "[a-zA-Z0-9][\\-'a-zA-Z0-9]+[a-zA-Z0-9]" $spellingfiles 2>&1 | wc -l)
+ if [[ $spellingerrors -ne 0 ]]; then
+ # print the output for info
+ zrun codespell --check-filenames --check-hidden --quiet 2 --regex "[a-zA-Z0-9][\\-'a-zA-Z0-9]+[a-zA-Z0-9]" $spellingfiles
+ echo "Found $spellingerrors spelling errors via codespell"
+ exit 1;
+ else
+ echo "Found $spellingerrors spelling errors via codespell"
+ fi;
+elif [[ $TASK = 'coverity' ]]; then
+ # Run Coverity Scan unless token is zero length
+ # The Coverity Scan script also relies on a number of other COVERITY_SCAN_
+ # variables set in .travis.yml
+ if [[ ${#COVERITY_SCAN_TOKEN} -ne 0 ]]; then
+ curl -s $COVERITY_SCAN_BUILD_URL | bash
+ else
+ echo "Skipping Coverity Scan as no token found, probably a Pull Request"
+ fi;
+elif [[ $TASK = 'sanitize' ]]; then
+ # Run sanitized compile
+ travis_fold start "make_sanitize"
+ make sanitize;
+ travis_fold end "make_sanitize"
+elif [[ $TASK = 'windows' ]]; then
+ # Run sanitized compile
+ travis_fold start "make_windows"
+ make windows;
+ travis_fold end "make_windows"
+else
+ # Otherwise compile as normal
+ travis_fold start "make"
+ make full;
+ travis_fold end "make"
+fi