diff --git a/.buildkite/pipeline.yaml b/.buildkite/pipeline.yaml new file mode 100644 index 00000000..9f44877f --- /dev/null +++ b/.buildkite/pipeline.yaml @@ -0,0 +1,50 @@ +steps: + - command: + - "go build ./cmd/..." + label: ":hammer-and-wrench: Build / :go: 1.11" + env: + GOGC: "400" + DENDRITE_LINT_DISABLE_GC: "1" + plugins: + - docker#v3.0.1: + image: "golang:1.11-alpine" + + - command: + - "go test ./..." + label: ":female-scientist: Unit tests / :go: 1.11" + env: + GOGC: "400" + DENDRITE_LINT_DISABLE_GC: "1" + plugins: + - docker#v3.0.1: + image: "golang:1.11-alpine" + + - command: + - "go build ./cmd/..." + label: ":hammer-and-wrench: Build / :go: 1.12" + env: + GOGC: "400" + DENDRITE_LINT_DISABLE_GC: "1" + plugins: + - docker#v3.0.1: + image: "golang:1.12-alpine" + + - command: + - "go test ./..." + label: ":female-scientist: Unit tests / :go: 1.12" + env: + GOGC: "400" + DENDRITE_LINT_DISABLE_GC: "1" + plugins: + - docker#v3.0.1: + image: "golang:1.12-alpine" + + - command: + - "./scripts/find-lint.sh" + label: ":lower_left_crayon: Lint / :go: 1.12" + env: + GOGC: "400" + DENDRITE_LINT_DISABLE_GC: "1" + plugins: + - docker#v3.0.1: + image: "golang:1.12-alpine" diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 8d5c3a13..00000000 --- a/.travis.yml +++ /dev/null @@ -1,31 +0,0 @@ -language: go -go: - - 1.11.x - - 1.12.x - -env: -- TEST_SUITE="lint" -- TEST_SUITE="unit-test" -- TEST_SUITE="integ-test" - -sudo: false - -# Use trusty for postgres 9.5 support -dist: trusty - -addons: - postgresql: "9.5" - -services: - - postgresql - -cache: - directories: - - .downloads - -script: - - ./scripts/travis-test.sh - -# we only need the latest git commit -git: - depth: 1 diff --git a/scripts/travis-test.sh b/scripts/travis-test.sh deleted file mode 100755 index c2a5f221..00000000 --- a/scripts/travis-test.sh +++ /dev/null @@ -1,86 +0,0 @@ -#! /bin/bash - -# The entry point for travis tests -# -# TEST_SUITE env var can be set to "lint", "unit-test" or "integ-test", in -# which case only the linting, unit tests or integration tests will be run -# respectively. If not specified or null all tests are run. - -set -eu - -# Tune the GC to use more memory to reduce the number of garbage collections -export GOGC=400 -export DENDRITE_LINT_DISABLE_GC=1 - -export GO111MODULE=on - -# starts a travis fold section. The first argument is the name of the fold -# section (which appears on the RHS) and may contain no spaces. Remaining -# arguments are echoed in yellow on the LHS as the header line of the fold -# section. -travis_sections=() -function travis_start { - name="$1" - shift - echo -en "travis_fold:start:$name\r" - travis_sections+=($name) - - # yellow/bold - echo -en "\e[33;1m" - echo "$@" - # normal - echo -en "\e[0m" -} - -# ends a travis fold section -function travis_end { - name=${travis_sections[-1]} - unset 'travis_sections[-1]' - echo -en "travis_fold:end:$name\r" -} - -function kill_kafka { - echo "killing kafka" - # sometimes kafka doesn't die on a SIGTERM so we SIGKILL it. - killall -9 -v java -} - -if [ "${TEST_SUITE:-lint}" == "lint" ]; then - ./scripts/find-lint.sh -fi - -if [ "${TEST_SUITE:-unit-test}" == "unit-test" ]; then - go test ./... -fi - -if [ "${TEST_SUITE:-integ-test}" == "integ-test" ]; then - travis_start go-build "Building dendrite and integ tests" - go install ./cmd/... - travis_end - - # 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. - go build ./cmd/... - - # Create necessary certificates and keys to run dendrite - travis_start certs "Building SSL certs" - openssl req -x509 -newkey rsa:512 -keyout server.key -out server.crt -days 365 -nodes -subj /CN=localhost - travis_end - - travis_start kafka "Installing kafka" - ./scripts/install-local-kafka.sh - travis_end - - # make sure we kill off zookeeper/kafka on exit, because it stops the - # travis container being cleaned up (cf - # https://github.com/travis-ci/travis-ci/issues/8082) - trap kill_kafka EXIT - - # Run the integration tests - for i in roomserver syncserver mediaapi; do - travis_start "$i-integration-tests" "Running integration tests for $i" - $i-integration-tests - travis_end - done -fi