cleanup ci

This commit is contained in:
Martin/Geno 2018-08-24 01:21:35 +02:00
parent d5533157a3
commit cca8a0a88c
No known key found for this signature in database
GPG Key ID: 9D7D3C6BFF600C6A
8 changed files with 124 additions and 28 deletions

View File

@ -1,19 +1,27 @@
pipeline: pipeline:
test: # Library does not need to build
#build:
# image: golang:latest
# commands:
# - go get -d -t ./...
# - go install
test-coverage:
image: golang:latest image: golang:latest
commands: commands:
- go get -d -t ./...
- go get -u github.com/mattn/goveralls - go get -u github.com/mattn/goveralls
- go get -u golang.org/x/tools/cmd/cover - go get -u golang.org/x/tools/cmd/cover
- ./.test-coverage - go get -d -t ./...
- ./contrib/ci/check-coverage drone.io
codestyle: codestyle:
image: golang:latest image: golang:latest
commands: commands:
- go get -d -t ./...
- ./contrib/ci/check-testfiles
- ./contrib/ci/check-gofmt
- go get github.com/client9/misspell/cmd/misspell - go get github.com/client9/misspell/cmd/misspell
- misspell -error . - misspell -error .
- if [ -n "$(gofmt -s -l .)" ]; then echo "Go code is not formatted, run 'gofmt -s -w .'" >&2; exit 1; fi
test-race: test-race:
image: golang:latest image: golang:latest
commands: commands:
- go get -d -t ./... - go get -d -t ./...
- go test -v -cover --race ./... - go test -race ./...

View File

@ -3,3 +3,14 @@ go:
- tip - tip
install: install:
- go get -t dev.sum7.eu/genofire/golang-lib/... - go get -t dev.sum7.eu/genofire/golang-lib/...
- go get github.com/mattn/goveralls
- go get golang.org/x/tools/cmd/cover
- go get github.com/client9/misspell/cmd/misspell
script:
- cd $GOPATH/src/dev.sum7.eu/genofire/golang-lib
# - go install # Library does not need to build
- ./contrib/ci/check-coverage travis-ci
- ./contrib/ci/check-testfiles
- ./contrib/ci/check-gofmt
- misspell -error .
- go test -race ./...

View File

@ -2,6 +2,8 @@
[![DroneCI](https://ci.sum7.eu/api/badges/genofire/golang-lib/status.svg?branch=master)](https://ci.sum7.eu/genofire/golang-lib) [![DroneCI](https://ci.sum7.eu/api/badges/genofire/golang-lib/status.svg?branch=master)](https://ci.sum7.eu/genofire/golang-lib)
[![Travis](https://travis-ci.org/genofire/golang-lib.svg?branch=master)](https://travis-ci.org/genofire/golang-lib) [![CircleCI](https://circleci.com/gh/genofire/golang-lib/tree/master.svg?style=shield)](https://circleci.com/gh/genofire/golang-lib/tree/master) [![Travis](https://travis-ci.org/genofire/golang-lib.svg?branch=master)](https://travis-ci.org/genofire/golang-lib) [![CircleCI](https://circleci.com/gh/genofire/golang-lib/tree/master.svg?style=shield)](https://circleci.com/gh/genofire/golang-lib/tree/master)
[![Coverage](https://coveralls.io/repos/github/genofire/golang-lib/badge.svg?branch=master)](https://coveralls.io/github/genofire/golang-lib?branch=master) [![Coverage](https://coveralls.io/repos/github/genofire/golang-lib/badge.svg?branch=master)](https://coveralls.io/github/genofire/golang-lib?branch=master)
[![codecov](https://codecov.io/gh/genofire/golang-lib/branch/master/graph/badge.svg)](https://codecov.io/gh/genofire/golang-lib)
[![Go Report Card](https://goreportcard.com/badge/dev.sum7.eu/genofire/golang-lib)](https://goreportcard.com/report/dev.sum7.eu/genofire/golang-lib) [![Go Report Card](https://goreportcard.com/badge/dev.sum7.eu/genofire/golang-lib)](https://goreportcard.com/report/dev.sum7.eu/genofire/golang-lib)
[![GoDoc](https://godoc.org/dev.sum7.eu/genofire/golang-lib?status.svg)](https://godoc.org/dev.sum7.eu/genofire/golang-lib) [![GoDoc](https://godoc.org/dev.sum7.eu/genofire/golang-lib?status.svg)](https://godoc.org/dev.sum7.eu/genofire/golang-lib)
some packages collected for easy and often used functions some packages collected for easy and often used functions

View File

@ -1,18 +1,50 @@
machine: version: 2
environment: jobs:
GOROOT: "" build:
PATH: "/usr/local/go/bin:/usr/local/go_workspace/bin:~/.go_workspace/bin:${PATH}" docker:
GOPATH: "${HOME}/.go_workspace" - image: circleci/golang:latest
working_directory: /go/src/github.com/genofire/golang-lib
dependencies: steps:
override: - checkout
- mkdir -p ~/.go_workspace/src/github.com/${CIRCLE_PROJECT_USERNAME} - run: go get -d -t ./...
- ln -s ${HOME}/${CIRCLE_PROJECT_REPONAME} ${HOME}/.go_workspace/src/github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME} - run: go install
- go get -t -d -v ./... test-coverage:
docker:
test: - image: circleci/golang:latest
pre: working_directory: /go/src/github.com/genofire/golang-lib
- go get -u github.com/mattn/goveralls steps:
- go get -u golang.org/x/tools/cmd/cover - checkout
override: - run: go get -d -t ./...
- ./.test-coverage circle-ci - run: go get github.com/mattn/goveralls
- run: go get golang.org/x/tools/cmd/cover
- run: ./contrib/ci/check-coverage circle-ci
- store_test_results:
path: ./
destination: profile.cov
codestyle:
docker:
- image: circleci/golang:latest
working_directory: /go/src/github.com/genofire/golang-lib
steps:
- checkout
- run: go get -d -t ./...
- run: ./contrib/ci/check-testfiles
- run: ./contrib/ci/check-gofmt
- run: go get github.com/client9/misspell/cmd/misspell
- run: misspell -error .
test_race:
docker:
- image: circleci/golang:latest
working_directory: /go/src/github.com/genofire/golang-lib
steps:
- checkout
- run: go get -d -t ./...
- run: go test -race ./...
workflows:
version: 2
build_and_tests:
jobs:
#- build # Library does not need to build
- test-coverage
- codestyle
- test_race

View File

@ -4,6 +4,11 @@
CI=$1 CI=$1
echo "run for $CI" echo "run for $CI"
# circle-ci
# travis-ci
# travis-pro
if [ "$CI" == "circle-ci" ]; then if [ "$CI" == "circle-ci" ]; then
cd ${GOPATH}/src/github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME} cd ${GOPATH}/src/github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}
fi fi
@ -25,9 +30,14 @@ do
done done
# Failures have incomplete results, so don't send # Failures have incomplete results, so don't send
if [ "$FAIL" -eq 0 ]; then [ "$FAIL" -ne 0 ] && exit 1
# ci not publishing
[ "$CI" == "" ] && exit 0
if [ "$CODECOV_TOKEN" != "" ]; then
bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN -f profile.cov bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN -f profile.cov
fi
if [ "$COVERALLS_REPO_TOKEN" != "" ] ; then
goveralls -v -coverprofile=profile.cov -service=$CI -repotoken=$COVERALLS_REPO_TOKEN goveralls -v -coverprofile=profile.cov -service=$CI -repotoken=$COVERALLS_REPO_TOKEN
fi fi
exit $FAIL

8
contrib/ci/check-gofmt Executable file
View File

@ -0,0 +1,8 @@
#!/bin/bash
result="$(gofmt -s -l . | grep -v '^vendor/' )"
if [ -n "$result" ]; then
echo "Go code is not formatted, run 'gofmt -s -w .'" >&2
echo "$result"
exit 1
fi

25
contrib/ci/check-testfiles Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env python
# checks if every desired package has test files
import os
import re
import sys
source_re = re.compile(".*\.go")
test_re = re.compile(".*_test\.go")
missing = False
for root, dirs, files in os.walk("."):
# ignore some paths
if root == "." or root == "./database/graphite" or root.startswith("./vendor") or root.startswith("./."):
continue
# source files but not test files?
if len(filter(source_re.match, files)) > 0 and len(filter(test_re.match, files)) == 0:
print("no test files for {}".format(root))
missing = True
if missing:
sys.exit(1)
else:
print("every package has test files")

View File

@ -54,7 +54,7 @@ func TestSaveJSON(t *testing.T) {
err = SaveJSON(tmpfile.Name(), tmpfile.Name) err = SaveJSON(tmpfile.Name(), tmpfile.Name)
assert.Error(err, "could not save func") assert.Error(err, "could not save func")
err = SaveJSON("/dev/null", 4) err = SaveJSON("/proc/readonly", 4)
assert.Error(err, "could not save to /dev/null") assert.Error(err, "could not save to /dev/null")
var testvalue int var testvalue int