diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 60495a3d1..d4e4f7a96 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -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: diff --git a/codecov.yml b/codecov.yml index a6cfbd167..a133d3145 100644 --- a/codecov.yml +++ b/codecov.yml @@ -2,8 +2,8 @@ coverage: precision: 2 round: down range: "70...100" - notify: - after_n_builds: 4 + github_checks: + annotations: false status: project: