mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-09 06:33:16 +00:00
Replace defer with t.Cleanup(). Replace the combination of ioutil.TempDir, error checking and defer os.RemoveAll() with Go testing.T's new TempDir() helper. Mark auxiliary functions as test helpers.
128 lines
3.4 KiB
YAML
128 lines
3.4 KiB
YAML
name: Test Coverage
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
- release/**
|
|
|
|
jobs:
|
|
split-test-files:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Create a file with all the pkgs
|
|
run: go list ./... > pkgs.txt
|
|
- name: Split pkgs into 4 files
|
|
run: split -d -n l/4 pkgs.txt pkgs.txt.part.
|
|
# cache multiple
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-00"
|
|
path: ./pkgs.txt.part.00
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-01"
|
|
path: ./pkgs.txt.part.01
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-02"
|
|
path: ./pkgs.txt.part.02
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-03"
|
|
path: ./pkgs.txt.part.03
|
|
|
|
build-linux:
|
|
name: Build
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
goarch: ["arm", "amd64"]
|
|
timeout-minutes: 5
|
|
steps:
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: "1.15"
|
|
- uses: actions/checkout@v2
|
|
- uses: technote-space/get-diff-action@v4
|
|
with:
|
|
PATTERNS: |
|
|
**/**.go
|
|
go.mod
|
|
go.sum
|
|
- name: install
|
|
run: GOOS=linux GOARCH=${{ matrix.goarch }} make build
|
|
if: "env.GIT_DIFF != ''"
|
|
|
|
tests:
|
|
runs-on: ubuntu-latest
|
|
needs: split-test-files
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
part: ["00", "01", "02", "03"]
|
|
steps:
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: "1.15"
|
|
- uses: actions/checkout@v2
|
|
- uses: technote-space/get-diff-action@v4
|
|
with:
|
|
PATTERNS: |
|
|
**/**.go
|
|
go.mod
|
|
go.sum
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-${{ matrix.part }}"
|
|
if: env.GIT_DIFF
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.15
|
|
- name: test & coverage report creation
|
|
run: |
|
|
cat pkgs.txt.part.${{ matrix.part }} | xargs go test -mod=readonly -timeout 8m -race -coverprofile=${{ matrix.part }}profile.out -covermode=atomic
|
|
if: env.GIT_DIFF
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-${{ matrix.part }}-coverage"
|
|
path: ./${{ matrix.part }}profile.out
|
|
|
|
upload-coverage-report:
|
|
runs-on: ubuntu-latest
|
|
needs: tests
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: technote-space/get-diff-action@v4
|
|
with:
|
|
PATTERNS: |
|
|
**/**.go
|
|
go.mod
|
|
go.sum
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-00-coverage"
|
|
if: env.GIT_DIFF
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-01-coverage"
|
|
if: env.GIT_DIFF
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-02-coverage"
|
|
if: env.GIT_DIFF
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: "${{ github.sha }}-03-coverage"
|
|
if: env.GIT_DIFF
|
|
- run: |
|
|
cat ./*profile.out | grep -v "mode: atomic" >> coverage.txt
|
|
if: env.GIT_DIFF
|
|
- uses: codecov/codecov-action@v1.0.15
|
|
with:
|
|
file: ./coverage.txt
|
|
if: env.GIT_DIFF
|