diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..11d5035 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,58 @@ +version: 2.1 + +references: + images: + go: &GOLANG_IMAGE circleci/golang:latest + environments: + tmp: &TEST_RESULTS_PATH /tmp/test-results # path to where test results are saved + +# reusable 'executor' object for jobs +executors: + go: + docker: + - image: *GOLANG_IMAGE + environment: + - TEST_RESULTS: *TEST_RESULTS_PATH + +jobs: + go-test: + executor: go + steps: + - checkout + - run: mkdir -p $TEST_RESULTS + + - restore_cache: # restore cache from dev-build job + keys: + - go-version-modcache-v1-{{ checksum "go.mod" }} + + # Save go module cache if the go.mod file has changed + - save_cache: + key: go-version-modcache-v1-{{ checksum "go.mod" }} + paths: + - "/go/pkg/mod" + + # check go fmt output because it does not report non-zero when there are fmt changes + - run: + name: check go fmt + command: | + files=$(go fmt ./...) + if [ -n "$files" ]; then + echo "The following file(s) do not conform to go fmt:" + echo "$files" + exit 1 + fi + + # run go tests with gotestsum + - run: | + PACKAGE_NAMES=$(go list ./...) + gotestsum --format=short-verbose --junitfile $TEST_RESULTS/gotestsum-report.xml -- $PACKAGE_NAMES + - store_test_results: + path: *TEST_RESULTS_PATH + - store_artifacts: + path: *TEST_RESULTS_PATH + +workflows: + version: 2 + test-and-build: + jobs: + - go-test diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d37ad1a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -language: go - -go: - - 1.3 - - 1.4 - - 1.9 - - "1.10" - - 1.11 - - 1.12 - - 1.13 - -script: - - go test diff --git a/README.md b/README.md index 6f3a15c..2ee50c5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Versioning Library for Go -[![Build Status](https://travis-ci.org/hashicorp/go-version.svg?branch=master)](https://travis-ci.org/hashicorp/go-version) +[![Build Status](https://circleci.com/gh/hashicorp/go-version/tree/master.svg?style=svg)](https://circleci.com/gh/hashicorp/go-version/tree/master) go-version is a library for parsing versions and version constraints, and verifying versions against a set of constraints. go-version