From 6319b9430afdfffbaf7e8dcd72877e752a9d468d Mon Sep 17 00:00:00 2001 From: Jon Ayers Date: Mon, 29 Apr 2019 14:17:14 -0500 Subject: [PATCH] Add CI --- .gitignore | 1 + .travis.yml | 10 ++++++++++ ci/ensuremod.sh | 22 ++++++++++++++++++++++ ci/lint.sh | 17 +++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 .travis.yml create mode 100755 ci/ensuremod.sh create mode 100755 ci/lint.sh diff --git a/.gitignore b/.gitignore index b873546..6eec620 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ vendor bin +.vscode diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..5b1b861 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,10 @@ +language: go + +go: +- 1.12.x +env: + - GO111MODULE=on +script: +- ./ci/ensuremod.sh +- ./ci/lint.sh +- go test -v ./... diff --git a/ci/ensuremod.sh b/ci/ensuremod.sh new file mode 100755 index 0000000..a974d6b --- /dev/null +++ b/ci/ensuremod.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# inspired by nhooyr's days as CI overlord + +set -eou pipefail + +function help() { + echo + echo "you may need to update go.mod/go.sum via:" + echo "go list all > /dev/null" + echo "go mod tidy" + exit 1 +} + +go list -mod=readonly all > /dev/null + +go mod tidy + +if [[ $(git diff --name-only) != "" ]]; then + git diff + help +fi diff --git a/ci/lint.sh b/ci/lint.sh new file mode 100755 index 0000000..76d26c1 --- /dev/null +++ b/ci/lint.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Inspired by nhooyr's days as CI overlord. + +set -euo pipefail + +files=$(gofmt -l -s .) + +if [ ! -z "$files" ]; +then + echo "The following files need to be formatted:" + echo "$files" + echo "Please run 'gofmt -w -s .'" + exit 1 +fi + +go vet -composites=false .