Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
scripts: add travis tests runner
- Loading branch information
Showing
1 changed file
with
109 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
#!/usr/bin/env bash | ||
set -e | ||
set -o pipefail | ||
|
||
PROJ="go-systemd" | ||
ORG_PATH="github.com/coreos" | ||
REPO_PATH="${ORG_PATH}/${PROJ}" | ||
|
||
PACKAGES="activation daemon dbus journal login1 machine1 sdjournal unit util" | ||
EXAMPLES="activation listen udpconn" | ||
|
||
function build_source { | ||
go build ./... | ||
} | ||
|
||
function build_tests { | ||
rm -rf ./test_bins ; mkdir -p ./test_bins | ||
for pkg in ${PACKAGES}; do | ||
echo " - ${pkg}" | ||
go test -c -o ./test_bins/${pkg}.test ./${pkg} | ||
done | ||
for ex in ${EXAMPLES}; do | ||
echo " - examples/${ex}" | ||
go build -o ./test_bins/${ex}.example ./examples/activation/${ex}.go | ||
done | ||
} | ||
|
||
function run_tests { | ||
pushd test_bins | ||
sudo -v | ||
for pkg in ${PACKAGES}; do | ||
echo " - ${pkg}" | ||
sudo -E ./${pkg}.test -test.v | ||
done | ||
popd | ||
rm -rf ./test_bins | ||
} | ||
|
||
function go_fmt { | ||
for pkg in ${PACKAGES}; do | ||
echo " - ${pkg}" | ||
fmtRes=$(gofmt -l "./${pkg}") | ||
if [ -n "${fmtRes}" ]; then | ||
echo -e "gofmt checking failed:\n${fmtRes}" | ||
exit 255 | ||
fi | ||
done | ||
} | ||
|
||
function go_vet { | ||
for pkg in ${PACKAGES}; do | ||
echo " - ${pkg}" | ||
vetRes=$(go vet "./${pkg}") | ||
if [ -n "${vetRes}" ]; then | ||
echo -e "govet checking failed:\n${vetRes}" | ||
exit 254 | ||
fi | ||
done | ||
} | ||
|
||
function license_check { | ||
licRes=$(for file in $(find . -type f -iname '*.go' ! -path './vendor/*'); do | ||
head -n3 "${file}" | grep -Eq "(Copyright|generated|GENERATED)" || echo -e " ${file}" | ||
done;) | ||
if [ -n "${licRes}" ]; then | ||
echo -e "license header checking failed:\n${licRes}" | ||
exit 253 | ||
fi | ||
} | ||
|
||
export GO15VENDOREXPERIMENT=1 | ||
|
||
subcommand="$1" | ||
case "$subcommand" in | ||
"build_source" ) | ||
echo "Building source..." | ||
build_source | ||
;; | ||
|
||
"build_tests" ) | ||
echo "Building tests..." | ||
build_tests | ||
;; | ||
|
||
"run_tests" ) | ||
echo "Running tests..." | ||
run_tests | ||
;; | ||
|
||
"go_fmt" ) | ||
echo "Checking gofmt..." | ||
go_fmt | ||
;; | ||
|
||
"go_vet" ) | ||
echo "Checking govet..." | ||
go_vet | ||
;; | ||
|
||
"license_check" ) | ||
echo "Checking licenses..." | ||
license_check | ||
;; | ||
|
||
* ) | ||
echo "Error: unrecognized subcommand." | ||
exit 1 | ||
;; | ||
esac |