summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/tests.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/tests.yml')
-rw-r--r--.github/workflows/tests.yml70
1 files changed, 70 insertions, 0 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
new file mode 100644
index 0000000..2777592
--- /dev/null
+++ b/.github/workflows/tests.yml
@@ -0,0 +1,70 @@
+name: Tests
+
+on: [push, pull_request]
+
+jobs:
+ unit-tests:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ go: ['1.13', '1.14', '1.15', '1.16']
+ env:
+ GO111MODULE: on
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-go@v2
+ with:
+ stable: false
+ go-version: ${{ matrix.go }}
+ - name: run unit tests
+ run: |
+ go get -v -t ./...
+ echo "" > "${GITHUB_WORKSPACE}"/coverage.txt
+ for d in $(go list ./...); do
+ go test -v -race -coverprofile=profile.out -covermode=atomic "${d}"
+ if [ -f profile.out ]; then
+ cat profile.out >> "${GITHUB_WORKSPACE}"/coverage.txt
+ rm profile.out
+ fi
+ done
+ - name: report coverage to codecov
+ uses: codecov/codecov-action@v1
+ with:
+ files: coverage.txt
+ flags: unittests
+ fail_ci_if_error: true
+ verbose: true
+ integration-tests:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ go: ['1.13', '1.14', '1.15', '1.16']
+ env:
+ GO111MODULE: on
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-go@v2
+ with:
+ stable: false
+ go-version: ${{ matrix.go }}
+ - name: run integ tests
+ run: |
+ go get -v -t -tags=integration ./...
+ echo "" > "${GITHUB_WORKSPACE}"/coverage.txt
+ for d in $(go list -tags=integration ./...); do
+ go test -c -tags=integration -v -race -coverprofile=profile.out -covermode=atomic "${d}"
+ testbin="./$(basename $d).test"
+ # only run it if it was built - i.e. if there are integ tests
+ test -x "${testbin}" && sudo "./${testbin}"
+ if [ -f profile.out ]; then
+ cat profile.out >> "${GITHUB_WORKSPACE}"/coverage.txt
+ rm profile.out
+ fi
+ done
+ - name: report coverage to codecov
+ uses: codecov/codecov-action@v1
+ with:
+ files: coverage.txt
+ flags: integtests
+ fail_ci_if_error: true
+ verbose: true