summaryrefslogtreecommitdiffstats
path: root/ci
diff options
context:
space:
mode:
Diffstat (limited to 'ci')
-rwxr-xr-xci/bintray.sh7
-rwxr-xr-xci/lint.sh17
-rwxr-xr-xci/test.sh17
3 files changed, 39 insertions, 2 deletions
diff --git a/ci/bintray.sh b/ci/bintray.sh
index b0fb7d6a..c7e8a81e 100755
--- a/ci/bintray.sh
+++ b/ci/bintray.sh
@@ -1,5 +1,8 @@
-#!/bin/bash
-go version | grep go1.11 || exit
+#!/usr/bin/env bash
+set -u -e -x -o pipefail
+
+go version | grep go1.12 || exit
+
VERSION=$(git describe --tags)
mkdir ci/binaries
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -X main.githash=$(git log --pretty=format:'%h' -n 1)" -o ci/binaries/matterbridge-$VERSION-windows-amd64.exe
diff --git a/ci/lint.sh b/ci/lint.sh
new file mode 100755
index 00000000..f68c2c92
--- /dev/null
+++ b/ci/lint.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+set -u -e -x -o pipefail
+
+if [[ -n "${GOLANGCI_VERSION-}" ]]; then
+ # Retrieve the golangci-lint linter binary.
+ curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b ${GOPATH}/bin ${GOLANGCI_VERSION}
+fi
+
+# Run the linter.
+golangci-lint run
+
+if [[ "${GO111MODULE-off}" == "on" ]]; then
+ # If Go modules are active then check that dependencies are correctly maintained.
+ go mod tidy
+ go mod vendor
+ git diff --exit-code --quiet || (echo "Please run 'go mod tidy' to clean up the 'go.mod' and 'go.sum' files."; false)
+fi
diff --git a/ci/test.sh b/ci/test.sh
new file mode 100755
index 00000000..5d9c258d
--- /dev/null
+++ b/ci/test.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+set -u -e -x -o pipefail
+
+if [[ -n "${REPORT_COVERAGE+cover}" ]]; then
+ # Retrieve and prepare CodeClimate's test coverage reporter.
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
+ chmod +x ./cc-test-reporter
+ ./cc-test-reporter before-build
+fi
+
+# Run all the tests with the race detector and generate coverage.
+go test -v -race -coverprofile c.out ./...
+
+if [[ -n "${REPORT_COVERAGE+cover}" && "${TRAVIS_SECURE_ENV_VARS}" == "true" ]]; then
+ # Upload test coverage to CodeClimate.
+ ./cc-test-reporter after-build
+fi