From 7deab4d80381d83fb85de38c4ff0df6e7168fc64 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Tue, 7 Nov 2017 16:52:15 +0000 Subject: [PATCH] Shuffle travis stuff --- .travis.yml | 10 ++++++++-- scripts/build-test-lint.sh | 28 +++++++++++++++++----------- scripts/find-lint.sh | 2 +- scripts/travis-test.sh | 31 ++++++++++++++++++------------- 4 files changed, 44 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index dd7359af9..b57f78c1f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,12 @@ language: go go: - 1.8 + - 1.9 + +env: +- TEST_SUITE="lint" +- TEST_SUITE="unit-test" +- TEST_SUITE="integ-test" sudo: false @@ -21,10 +27,10 @@ install: # Generate a self-signed X.509 certificate for TLS. before_script: - - openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes -subj /CN=localhost + - if [ "$TEST_SUITE" -eq "integ-test" ] openssl req -x509 -newkey rsa:512 -keyout server.key -out server.crt -days 365 -nodes -subj /CN=localhost + - if [ "$TEST_SUITE" -eq "integ-test" ] ./scripts/install-local-kafka.sh script: - - ./scripts/install-local-kafka.sh - ./scripts/travis-test.sh notifications: diff --git a/scripts/build-test-lint.sh b/scripts/build-test-lint.sh index cf1f37b78..2de5c2cf9 100755 --- a/scripts/build-test-lint.sh +++ b/scripts/build-test-lint.sh @@ -7,20 +7,26 @@ set -eu export GOPATH="$(pwd):$(pwd)/vendor" export PATH="$PATH:$(pwd)/vendor/bin:$(pwd)/bin" -echo "Checking that it builds" -gb build +if [ "${TEST_SUITE-}" != "lint" ]; then + echo "Checking that it builds" + gb build -# Check that all the packages can build. -# When `go build` is given multiple packages it won't output anything, and just -# checks that everything builds. This seems to do a better job of handling -# missing imports than `gb build` does. -echo "Double checking it builds..." -go build github.com/matrix-org/dendrite/cmd/... + # Check that all the packages can build. + # When `go build` is given multiple packages it won't output anything, and just + # checks that everything builds. This seems to do a better job of handling + # missing imports than `gb build` does. + echo "Double checking it builds..." + go build github.com/matrix-org/dendrite/cmd/... +fi -./scripts/find-lint.sh +if [ "${TEST_SUITE-lint}" == "lint" ]; then + ./scripts/find-lint.sh +fi echo "Double checking spelling..." misspell -error src *.md -echo "Testing..." -gb test +if [ "${TEST_SUITE-unit-test}" == "unit-test" ]; then + echo "Testing..." + gb test +fi diff --git a/scripts/find-lint.sh b/scripts/find-lint.sh index 81ca806b0..e2df519c5 100755 --- a/scripts/find-lint.sh +++ b/scripts/find-lint.sh @@ -31,7 +31,7 @@ then args="$args --enable-gc" fi echo "Installing lint search engine..." -go install github.com/alecthomas/gometalinter/ +gb build github.com/alecthomas/gometalinter/ gometalinter --config=linter.json ./... --install echo "Looking for lint..." diff --git a/scripts/travis-test.sh b/scripts/travis-test.sh index 5851c3b0f..985b1a4d4 100755 --- a/scripts/travis-test.sh +++ b/scripts/travis-test.sh @@ -8,20 +8,25 @@ set -eu export GOGC=400 export DENDRITE_LINT_DISABLE_GC=1 -# Check that the servers build (this is done explicitly because `gb build` can silently fail (exit 0) and then we'd test a stale binary) -gb build github.com/matrix-org/dendrite/cmd/dendrite-room-server -gb build github.com/matrix-org/dendrite/cmd/roomserver-integration-tests -gb build github.com/matrix-org/dendrite/cmd/dendrite-sync-api-server -gb build github.com/matrix-org/dendrite/cmd/syncserver-integration-tests -gb build github.com/matrix-org/dendrite/cmd/create-account -gb build github.com/matrix-org/dendrite/cmd/dendrite-media-api-server -gb build github.com/matrix-org/dendrite/cmd/mediaapi-integration-tests -gb build github.com/matrix-org/dendrite/cmd/client-api-proxy +# We don't bother to build if we're only checking the linting +if [ "${TEST_SUITE-}" != "lint" ]; then + # Check that the servers build (this is done explicitly because `gb build` can silently fail (exit 0) and then we'd test a stale binary) + gb build github.com/matrix-org/dendrite/cmd/dendrite-room-server + gb build github.com/matrix-org/dendrite/cmd/roomserver-integration-tests + gb build github.com/matrix-org/dendrite/cmd/dendrite-sync-api-server + gb build github.com/matrix-org/dendrite/cmd/syncserver-integration-tests + gb build github.com/matrix-org/dendrite/cmd/create-account + gb build github.com/matrix-org/dendrite/cmd/dendrite-media-api-server + gb build github.com/matrix-org/dendrite/cmd/mediaapi-integration-tests + gb build github.com/matrix-org/dendrite/cmd/client-api-proxy +fi # Run unit tests and linters ./scripts/build-test-lint.sh -# Run the integration tests -bin/roomserver-integration-tests -bin/syncserver-integration-tests -bin/mediaapi-integration-tests +if [ "${TEST_SUITE-unit-test}" == "integ-test" ]; then + # Run the integration tests + bin/roomserver-integration-tests + bin/syncserver-integration-tests + bin/mediaapi-integration-tests +fi