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