From 39ab2dab729c97595433e65536c059f03d614f09 Mon Sep 17 00:00:00 2001 From: Guilhem Fanton <8671905+gfanton@users.noreply.github.com> Date: Mon, 2 Oct 2023 17:20:25 +0200 Subject: [PATCH] fix(codecov): increase codecov upload attempt (#1186) multiple workflows were failing randomly with `Unable to locate build via Github Actions API` error like: - https://github.com/gnolang/gno/actions/runs/6349517658/job/17247838334?pr=1179 - https://github.com/gnolang/gno/actions/runs/6378366330/job/17308780300?pr=1117 - ... based on this [issue#3954](https://community.codecov.com/t/upload-issues-unable-to-locate-build-via-github-actions-api/3954) from `community.codecov.com` adding `codecov upload token` should resolve most issues. However, in some rare instances where API limits are still reached, a re-upload attempt should be made. This PR introduces a retry action to allow codecov to reattempt the upload if it fails the first time. --------- Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com> --- .github/workflows/gnoland.yml | 20 ++++++++++++++------ .github/workflows/gnovm.yml | 22 +++++++++++++++------- .github/workflows/tm2.yml | 22 +++++++++++++++------- 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/.github/workflows/gnoland.yml b/.github/workflows/gnoland.yml index 9fdfa3011cc..09896aaee7b 100644 --- a/.github/workflows/gnoland.yml +++ b/.github/workflows/gnoland.yml @@ -74,14 +74,22 @@ jobs: export GOPATH=$HOME/go export GOTEST_FLAGS="-v -p 1 -timeout=30m -coverprofile=coverage.out -covermode=atomic" make ${{ matrix.args }} + + # NOTE: Using retry action to manage occasional upload failures to codecov.io, due to API limits. + # Refer to issue#3954: https://community.codecov.com/t/upload-issues-unable-to-locate-build-via-github-actions-api/3954 - if: ${{ runner.os == 'Linux' && matrix.goversion == '1.21.x' }} - uses: codecov/codecov-action@v3 + name: Upload coverage to Codecov.io + uses: Wandalen/wretry.action@v1.3.0 with: - token: ${{ secrets.CODECOV_TOKEN }} - name: gno.land - flags: gno.land-${{matrix.args}} - files: ./gno.land/coverage.out - fail_ci_if_error: ${{ github.repository == 'gnolang/gno' }} + attempt_limit: 3 + attempt_delay: 30000 + action: codecov/codecov-action@v3 + with: | + token: ${{ secrets.CODECOV_TOKEN }} + name: gno.land + flags: gno.land-${{matrix.args}} + files: ./gno.land/coverage.out + fail_ci_if_error: ${{ github.repository == 'gnolang/gno' }} docker-integration: strategy: diff --git a/.github/workflows/gnovm.yml b/.github/workflows/gnovm.yml index 034aa109767..5ac11805fae 100644 --- a/.github/workflows/gnovm.yml +++ b/.github/workflows/gnovm.yml @@ -78,12 +78,20 @@ jobs: export GOPATH=$HOME/go export GOTEST_FLAGS="-v -p 1 -timeout=30m -coverprofile=coverage.out -covermode=atomic" make ${{ matrix.args }} + + # NOTE: Using retry action to manage occasional upload failures to codecov.io, due to API limits. + # Refer to issue#3954: https://community.codecov.com/t/upload-issues-unable-to-locate-build-via-github-actions-api/3954 - if: ${{ runner.os == 'Linux' && matrix.goversion == '1.21.x' }} - uses: codecov/codecov-action@v3 + name: Upload coverage to Codecov.io + uses: Wandalen/wretry.action@v1.3.0 with: - token: ${{ secrets.CODECOV_TOKEN }} - name: gnovm - verbose: true - flags: gnovm-${{matrix.args}} - files: ./gnovm/coverage.out - fail_ci_if_error: ${{ github.repository == 'gnolang/gno' }} + attempt_limit: 3 + attempt_delay: 30000 + action: codecov/codecov-action@v3 + with: | + token: ${{ secrets.CODECOV_TOKEN }} + name: gnovm + verbose: true + flags: gnovm-${{matrix.args}} + files: ./gnovm/coverage.out + fail_ci_if_error: ${{ github.repository == 'gnolang/gno' }} diff --git a/.github/workflows/tm2.yml b/.github/workflows/tm2.yml index fc744ccc2ef..2c116d80f87 100644 --- a/.github/workflows/tm2.yml +++ b/.github/workflows/tm2.yml @@ -68,12 +68,20 @@ jobs: export GOTEST_FLAGS="-v -p 1 -timeout=30m -coverprofile=coverage.out -covermode=atomic" make ${{ matrix.args }} touch coverage.out + + # NOTE: Using retry action to manage occasional upload failures to codecov.io, due to API limits. + # Refer to issue#3954: https://community.codecov.com/t/upload-issues-unable-to-locate-build-via-github-actions-api/3954 - if: ${{ runner.os == 'Linux' && matrix.goversion == '1.21.x' }} - uses: codecov/codecov-action@v3 + name: Upload coverage to Codecov.io + uses: Wandalen/wretry.action@v1.3.0 with: - token: ${{ secrets.CODECOV_TOKEN }} - name: tm2 - verbose: true - flags: tm2-${{matrix.args}} - files: ./tm2/coverage.out - fail_ci_if_error: ${{ github.repository == 'gnolang/gno' }} + attempt_limit: 3 + attempt_delay: 30000 + action: codecov/codecov-action@v3 + with: | + token: ${{ secrets.CODECOV_TOKEN }} + name: tm2 + verbose: true + flags: tm2-${{matrix.args}} + files: ./tm2/coverage.out + fail_ci_if_error: ${{ github.repository == 'gnolang/gno' }}