diff options
Diffstat (limited to '.github/workflows/tests.yml')
-rw-r--r-- | .github/workflows/tests.yml | 70 |
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 |