| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- name: Tests
- on: [push, pull_request]
- jobs:
- unit-tests:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- go: ['1.20', '1.21']
- steps:
- - uses: actions/checkout@v4
- with:
- # clone in the gopath
- path: src/github.com/${{ github.repository }}
- fetch-depth: 0
- - uses: actions/setup-go@v5
- with:
- 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 ./...
- go test -v -race -coverprofile=coverage.txt -covermode=atomic ./...
- - name: report coverage to codecov
- uses: codecov/codecov-action@v4
- with:
- files: coverage.txt
- disable_search: true
- flags: unittests
- fail_ci_if_error: true
- verbose: true
- root_dir: ${{ github.workspace }}/src/github.com/${{ github.repository }}
- working-directory: ${{ github.workspace }}/src/github.com/${{ github.repository }}
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- integration-tests:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- go: ['1.20', '1.21']
- steps:
- - uses: actions/checkout@v4
- with:
- # clone in the gopath
- path: src/github.com/${{ github.repository }}
- fetch-depth: 0
- - uses: actions/setup-go@v5
- with:
- 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@v4
- with:
- files: ${{github.workspace}}/coverage.txt
- disable_search: true
- flags: integtests
- fail_ci_if_error: true
- verbose: true
- root_dir: ${{ github.workspace }}/src/github.com/${{ github.repository }}
- working-directory: ${{ github.workspace }}/src/github.com/${{ github.repository }}
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|