From 31bdfe50bd1d449bc614028967351fffa4de9bc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2026 13:27:57 +0000 Subject: [PATCH 1/2] build(deps): bump codecov/codecov-action from 7.0.0 to 7.1.0 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 7.0.0 to 7.1.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/fb8b3582c8e4def4969c97caa2f19720cb33a72f...0b35c9ecc4f0529d0eb674914510c22f85b196b4) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/cron-ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cron-ci.yaml b/.github/workflows/cron-ci.yaml index f513e757e54..b5726db678d 100644 --- a/.github/workflows/cron-ci.yaml +++ b/.github/workflows/cron-ci.yaml @@ -57,7 +57,7 @@ jobs: - name: Upload to Codecov if: ${{ github.event_name != 'pull_request' }} - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 + uses: codecov/codecov-action@0b35c9ecc4f0529d0eb674914510c22f85b196b4 # v7.1.0 with: files: ./codecov.lcov From b366369119e447c252867e4c621fb652adc401e3 Mon Sep 17 00:00:00 2001 From: "Jeong, YunWon" Date: Tue, 22 Sep 2026 23:47:36 +0900 Subject: [PATCH 2/2] Run llvm-cov in release so coverage finishes under 6h Debug+instrumented `-m test -u all` spent 5.5h on 41 tests. Use --release, a 120s per-test timeout, and -j0. Bound the suite step at 180 minutes so a hang still leaves time to report. Assisted-by: Grok:4.6 --- .github/workflows/cron-ci.yaml | 8 ++++++-- scripts/cargo-llvm-cov.py | 10 +++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cron-ci.yaml b/.github/workflows/cron-ci.yaml index b5726db678d..7bf84c5ad1d 100644 --- a/.github/workflows/cron-ci.yaml +++ b/.github/workflows/cron-ci.yaml @@ -22,6 +22,7 @@ jobs: codecov: name: Collect code coverage data runs-on: ubuntu-latest + timeout-minutes: 350 # Disable this scheduled job when running on a fork. if: ${{ github.repository == 'RustPython/RustPython' || github.event_name != 'schedule' }} env: @@ -41,15 +42,18 @@ jobs: - run: sudo apt-get update && sudo apt-get -y install lcov + # llvm-cov of a debug binary makes `-m test -u all` take many hours per + # dozen tests. Release + per-test timeout keeps the job under 6h. - name: Run cargo-llvm-cov with Rust tests. - run: cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --exclude rustpython-venvlauncher --exclude rustpython-capi --verbose --no-default-features --features stdlib,importlib,stdio,encodings,ssl-rustls-aws-lc,jit,host_env + run: cargo llvm-cov --no-report --release --workspace --exclude rustpython_wasm --exclude rustpython-venvlauncher --exclude rustpython-capi --verbose --no-default-features --features stdlib,importlib,stdio,encodings,ssl-rustls-aws-lc,jit,host_env - name: Run cargo-llvm-cov with Python snippets. run: python scripts/cargo-llvm-cov.py continue-on-error: true - name: Run cargo-llvm-cov with Python test suite. - run: cargo llvm-cov --no-report run -- -m test -u all --slowest --fail-env-changed + timeout-minutes: 180 + run: cargo llvm-cov --no-report --release run -- -m test -u all --timeout 120 --slowest --fail-env-changed -j0 continue-on-error: true - name: Prepare code coverage data diff --git a/scripts/cargo-llvm-cov.py b/scripts/cargo-llvm-cov.py index 9a7b24dd04c..1c5ccbb5506 100644 --- a/scripts/cargo-llvm-cov.py +++ b/scripts/cargo-llvm-cov.py @@ -7,7 +7,15 @@ def run_llvm_cov(file_path: str): """Run cargo llvm-cov on a file.""" if file_path.endswith(".py"): - command = ["cargo", "llvm-cov", "--no-report", "run", "--", file_path] + command = [ + "cargo", + "llvm-cov", + "--no-report", + "--release", + "run", + "--", + file_path, + ] subprocess.call(command)