Merge pull request #64 from hashicorp/add-circle-config
add circleci config and move to circle
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