| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- name: Tests
- on: [push, pull_request]
- jobs:
- unit-tests:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- go: ['1.19', '1.20']
- steps:
- - uses: actions/checkout@v3
- with:
- # clone in the gopath
- path: src/github.com/${{ github.repository }}
- fetch-depth: 0
- - uses: actions/setup-go@v2
- with:
- stable: false
- go-version: ${{ matrix.go }}
- - run: |
- # `env` doesn't allow for variable expansion, so we use the GITHUB_ENV
- # trick.
- echo "GOPATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV
- echo "GO111MODULE=on" >> $GITHUB_ENV
- - name: run unit tests
- run: |
- cd $GITHUB_WORKSPACE/src/github.com/${{ github.repository }}
- 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@v3
- with:
- files: coverage.txt
- flags: unittests
- fail_ci_if_error: true
- verbose: true
- integration-tests:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- go: ['1.19', '1.20']
- steps:
- - uses: actions/checkout@v3
- with:
- # clone in the gopath
- path: src/github.com/${{ github.repository }}
- fetch-depth: 0
- - uses: actions/setup-go@v2
- with:
- stable: false
- go-version: ${{ matrix.go }}
- - run: |
- # `env` doesn't allow for variable expansion, so we use the GITHUB_ENV
- # trick.
- echo "GOPATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV
- echo "GO111MODULE=on" >> $GITHUB_ENV
- - name: setup integ tests
- run: |
- cd $GITHUB_WORKSPACE/src/github.com/${{ github.repository }}
- ./.ci/setup-integ.sh
- - name: run integ tests
- run: |
- cd $GITHUB_WORKSPACE/src/github.com/${{ github.repository }}/integ
- 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@v3
- with:
- files: coverage.txt
- flags: integtests
- fail_ci_if_error: true
- verbose: true
|