name: Code Coverage on: pull_request: push: branches: - master jobs: cleanup-runs: runs-on: ubuntu-latest steps: - uses: rokroskar/workflow-run-cleanup-action@master env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" if: "!startsWith(github.ref, 'refs/tags/') && github.ref != 'refs/heads/master'" test-coverage-upload: runs-on: ubuntu-latest steps: - uses: actions/setup-go@v2-beta - uses: actions/checkout@v2 - uses: technote-space/get-diff-action@v1 id: git_diff with: SUFFIX_FILTER: | .go .mod .sum - name: build run: | make build if: "env.GIT_DIFF != ''" - name: test & coverage report creation run: | go test ./... -mod=readonly -timeout 12m -race -coverprofile=coverage.txt -covermode=atomic -tags='ledger test_ledger_mock' if: "env.GIT_DIFF != ''" - name: filter out DONTCOVER run: | excludelist="$(find ./ -type f -name '*.go' | xargs grep -l 'DONTCOVER')" excludelist+=" $(find ./ -type f -name '*.pb.go')" excludelist+=" $(find ./ -type f -path './tests/mocks/*.go')" for filename in ${excludelist}; do filename=$(echo $filename | sed 's/^./github.com\/cosmos\/cosmos-sdk/g') echo "Excluding ${filename} from coverage report..." sed -i.bak "/$(echo $filename | sed 's/\//\\\//g')/d" coverage.txt done if: "env.GIT_DIFF != ''" - uses: codecov/codecov-action@v1 with: file: ./coverage.txt # optional fail_ci_if_error: true if: "env.GIT_DIFF != ''" integration-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: build-sim run: | make build-sim if: "env.GIT_DIFF != ''" - name: cli-test run: | make test-integration