add gitlab-ci

This commit is contained in:
Martin/Geno 2019-02-25 19:36:27 +01:00
parent 0764231935
commit e47e3faee9
No known key found for this signature in database
GPG Key ID: 9D7D3C6BFF600C6A
3 changed files with 69 additions and 0 deletions

8
.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
.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.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")

36
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,36 @@
image: golang:latest
stages:
- build
- test
before_script:
- mkdir -p /go/src/dev.sum7.eu/$CI_PROJECT_NAMESPACE/
- cp -R /builds/$CI_PROJECT_PATH /go/src/dev.sum7.eu/$CI_PROJECT_NAMESPACE/
- cd /go/src/dev.sum7.eu/$CI_PROJECT_PATH
- go get -d -t ./...
build-my-project:
stage: build
script:
- go install dev.sum7.eu/$CI_PROJECT_PATH/...
- mv /go/bin/$CI_PROJECT_NAME /builds/$CI_PROJECT_PATH
artifacts:
paths:
- $CI_PROJECT_NAME
test-my-project:
stage: test
script:
- go get github.com/client9/misspell/cmd/misspell
- misspell -error .
- ./.ci/check-gofmt
- ./.ci/check-testfiles
- go test $(go list ./... | grep -v /vendor/) -v -coverprofile .testCoverage.txt
artifacts:
paths:
- .testCoverage.txt
test-race-my-project:
stage: test
script:
- go test -race ./...