Browse Source

ci: tests (#5577)

- use matrix builds to run multiple test jobs
- upload code coverage once not 4 times (produce more accurate codecov reports)
pull/5585/head
Marko 4 years ago
committed by Marko
parent
commit
0022779e07
2 changed files with 30 additions and 63 deletions
  1. +28
    -61
      .github/workflows/coverage.yml
  2. +2
    -2
      codecov.yml

+ 28
- 61
.github/workflows/coverage.yml View File

@ -14,28 +14,32 @@ jobs:
- name: Create a file with all the pkgs
run: go list ./... > pkgs.txt
- name: Split pkgs into 4 files
run: split -n l/4 --additional-suffix=.txt ./pkgs.txt
run: split -d -n l/4 pkgs.txt pkgs.txt.part.
# cache multiple
- uses: actions/upload-artifact@v2
with:
name: "${{ github.sha }}-aa"
path: ./xaa.txt
name: "${{ github.sha }}-00"
path: ./pkgs.txt.part.00
- uses: actions/upload-artifact@v2
with:
name: "${{ github.sha }}-ab"
path: ./xab.txt
name: "${{ github.sha }}-01"
path: ./pkgs.txt.part.01
- uses: actions/upload-artifact@v2
with:
name: "${{ github.sha }}-ac"
path: ./xac.txt
name: "${{ github.sha }}-02"
path: ./pkgs.txt.part.02
- uses: actions/upload-artifact@v2
with:
name: "${{ github.sha }}-ad"
path: ./xad.txt
name: "${{ github.sha }}-03"
path: ./pkgs.txt.part.03
test-coverage-part-1:
tests:
runs-on: ubuntu-latest
needs: split-test-files
strategy:
fail-fast: false
matrix:
part: ["00", "01", "02", "03"]
steps:
- uses: actions/checkout@v2
- uses: technote-space/get-diff-action@v4
@ -46,20 +50,20 @@ jobs:
go.sum
- uses: actions/download-artifact@v2
with:
name: "${{ github.sha }}-aa"
name: "${{ github.sha }}-${{ matrix.part }}"
if: env.GIT_DIFF
- name: test & coverage report creation
run: |
cat xaa.txt | xargs go test -mod=readonly -timeout 8m -race -coverprofile=coverage.txt -covermode=atomic
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: codecov/codecov-action@v1.0.13
- uses: actions/upload-artifact@v2
with:
file: ./coverage.txt
if: env.GIT_DIFF
name: "${{ github.sha }}-${{ matrix.part }}-coverage"
path: ./${{ matrix.part }}profile.out
test-coverage-part-2:
upload-coverage-report:
runs-on: ubuntu-latest
needs: split-test-files
needs: tests
steps:
- uses: actions/checkout@v2
- uses: technote-space/get-diff-action@v4
@ -70,59 +74,22 @@ jobs:
go.sum
- uses: actions/download-artifact@v2
with:
name: "${{ github.sha }}-ab"
name: "${{ github.sha }}-00-coverage"
if: env.GIT_DIFF
- name: test & coverage report creation
run: |
cat xab.txt | xargs go test -mod=readonly -timeout 5m -race -coverprofile=coverage.txt -covermode=atomic
if: env.GIT_DIFF
- uses: codecov/codecov-action@v1.0.13
with:
file: ./coverage.txt
if: env.GIT_DIFF
test-coverage-part-3:
runs-on: ubuntu-latest
needs: split-test-files
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 }}-ac"
if: env.GIT_DIFF
- name: test & coverage report creation
run: |
cat xac.txt | xargs go test -mod=readonly -timeout 10m -race -coverprofile=coverage.txt -covermode=atomic
name: "${{ github.sha }}-01-coverage"
if: env.GIT_DIFF
- uses: codecov/codecov-action@v1.0.13
- uses: actions/download-artifact@v2
with:
file: ./coverage.txt
name: "${{ github.sha }}-02-coverage"
if: env.GIT_DIFF
test-coverage-part-4:
runs-on: ubuntu-latest
needs: split-test-files
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 }}-ad"
name: "${{ github.sha }}-03-coverage"
if: env.GIT_DIFF
- name: test & coverage report creation
run: |
cat xad.txt | xargs go test -mod=readonly -timeout 5m -race -coverprofile=coverage.txt -covermode=atomic
- run: |
cat ./*profile.out | grep -v "mode: atomic" >> coverage.txt
if: env.GIT_DIFF
- uses: codecov/codecov-action@v1.0.13
with:


+ 2
- 2
codecov.yml View File

@ -2,8 +2,8 @@ coverage:
precision: 2
round: down
range: "70...100"
notify:
after_n_builds: 4
github_checks:
annotations: false
status:
project:


Loading…
Cancel
Save