Merge pull request #188 from emirpasic/development
Switch to CircleCI
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 0000000..d4b8004
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,70 @@
+version: 2.1
+
+jobs:
+ test:
+ parameters:
+ version:
+ type: string
+ default: latest
+ docker:
+ - image: cimg/go:<<parameters.version>>
+ environment:
+ TEST_RESULTS: /tmp/test-results
+ working_directory: ~/gods
+ steps:
+ - run:
+ name: Print Go version (go version)
+ command: |
+ go version
+ - checkout
+ - run:
+ name: Run tests
+ command: |
+ mkdir -p $TEST_RESULTS
+ go install gotest.tools/gotestsum@latest
+ go test -v ./... | go tool test2json > $TEST_RESULTS/test2json-output.json
+ gotestsum --junitfile $TEST_RESULTS/gotestsum-report.xml
+ - run:
+ name: Calculate test coverage
+ command: |
+ mkdir -p $TEST_RESULTS
+ go test -coverprofile=c.out ./... > /dev/null
+ go tool cover -html=c.out -o coverage.html
+ mv coverage.html $TEST_RESULTS
+ - run:
+ name: Lint (golint)
+ command: |
+ go install golang.org/x/lint/golint@latest
+ golint -set_exit_status ./...
+ - run:
+ name: Enforce formatted code (go fmt)
+ command: |
+ ! go fmt ./... 2>&1 | read
+ - run:
+ name: Examine and report suspicious constructs (go vet)
+ command: |
+ go vet -v ./...
+ - run:
+ name: Calculate cyclomatic complexity (gocyclo)
+ command: |
+ go install github.com/fzipp/gocyclo/cmd/gocyclo@latest
+ gocyclo -avg -over 15 ../gods
+ - run:
+ name: Check for unchecked errors (errcheck)
+ command: |
+ go install github.com/kisielk/errcheck@latest
+ errcheck ./...
+ - store_artifacts:
+ path: /tmp/test-results
+ destination: raw-test-output
+ - store_test_results:
+ path: /tmp/test-results
+
+workflows:
+ test:
+ jobs:
+ - test:
+ matrix:
+ parameters:
+ # To test with and without generics (versions prior to 1.18)
+ version: ["1.18", "1.17"]
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 77c0470..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-language: go
-arch:
- - amd64
- - ppc64le
-go:
- - 1.2.x
- - 1.3.x
- - 1.4.x
- - 1.5.x
- - 1.6.x
- - 1.7.x
- - 1.8.x
- - 1.9.x
- - 1.10.x
- - 1.11.x
- - 1.12.x
- - 1.13.x
- - 1.14.x
- - tip
-jobs:
- exclude: # Excluded for power support as the lower versions are not supported
- - arch: ppc64le
- go: 1.2.x
- - arch: ppc64le
- go: 1.3.x
- - arch: ppc64le
- go: 1.4.x
diff --git a/README.md b/README.md
index 7346b99..035fc34 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[![GoDoc](https://godoc.org/github.com/emirpasic/gods?status.svg)](https://godoc.org/github.com/emirpasic/gods) [![Build Status](https://travis-ci.org/emirpasic/gods.svg)](https://travis-ci.org/emirpasic/gods) [![Go Report Card](https://goreportcard.com/badge/github.com/emirpasic/gods)](https://goreportcard.com/report/github.com/emirpasic/gods) [![PyPI](https://img.shields.io/pypi/l/Django.svg?maxAge=2592000)](https://github.com/emirpasic/gods/blob/master/LICENSE)
+[![GoDoc](https://godoc.org/github.com/emirpasic/gods?status.svg)](https://godoc.org/github.com/emirpasic/gods) [![Build Status](https://circleci.com/gh/emirpasic/gods/tree/master.svg?style=shield)](https://circleci.com/gh/emirpasic/gods?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/emirpasic/gods)](https://goreportcard.com/report/github.com/emirpasic/gods) [![PyPI](https://img.shields.io/pypi/l/Django.svg?maxAge=2592000)](https://github.com/emirpasic/gods/blob/master/LICENSE)
# GoDS (Go Data Structures)
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..5160ad0
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,3 @@
+module github.com/emirpasic/gods
+
+go 1.2