1+ name : Periodic checks/tasks
2+
13on :
24 schedule :
35 - cron : " 0 0 * * 6"
46 workflow_dispatch :
57 push :
68 paths :
79 - .github/workflows/cron-ci.yaml
10+ branches :
11+ - main
812 pull_request :
913 paths :
1014 - .github/workflows/cron-ci.yaml
1115
12- name : Periodic checks/tasks
13-
1416env :
1517 CARGO_ARGS : --no-default-features --features stdlib,importlib,stdio,encodings,ssl-rustls,jit,host_env
18+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 : ' true' # TODO: Remove on 2026/06/02
1619
1720jobs :
1821 # codecov collects code coverage data from the rust tests, python snippets and python test suite.
@@ -28,24 +31,32 @@ jobs:
2831 persist-credentials : false
2932
3033 - uses : dtolnay/rust-toolchain@stable
31- - uses : taiki-e/install-action@cargo-llvm-cov
34+
35+ - uses : taiki-e/install-action@cf525cb33f51aca27cd6fa02034117ab963ff9f1 # v2.75.22
36+ with :
37+ tool : cargo-llvm-cov
3238
3339 - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
3440
3541 - run : sudo apt-get update && sudo apt-get -y install lcov
42+
3643 - name : Run cargo-llvm-cov with Rust tests.
3744 run : cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --exclude rustpython-compiler-source --exclude rustpython-venvlauncher --verbose --no-default-features --features stdlib,importlib,stdio,encodings,ssl-rustls,jit,host_env
45+
3846 - name : Run cargo-llvm-cov with Python snippets.
3947 run : python scripts/cargo-llvm-cov.py
4048 continue-on-error : true
49+
4150 - name : Run cargo-llvm-cov with Python test suite.
4251 run : cargo llvm-cov --no-report run -- -m test -u all --slowest --fail-env-changed
4352 continue-on-error : true
53+
4454 - name : Prepare code coverage data
4555 run : cargo llvm-cov report --lcov --output-path='codecov.lcov'
56+
4657 - name : Upload to Codecov
4758 if : ${{ github.event_name != 'pull_request' }}
48- uses : codecov/codecov-action@v5
59+ uses : codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
4960 with :
5061 files : ./codecov.lcov
5162
@@ -60,12 +71,15 @@ jobs:
6071 persist-credentials : true
6172
6273 - uses : dtolnay/rust-toolchain@stable
74+
6375 - name : build rustpython
6476 run : cargo build --release --verbose
77+
6578 - name : collect tests data
6679 run : cargo run --release extra_tests/jsontests.py
6780 env :
6881 RUSTPYTHONPATH : ${{ github.workspace }}/Lib
82+
6983 - name : upload tests data to the website
7084 if : ${{ github.event_name != 'pull_request' }}
7185 env :
@@ -100,12 +114,14 @@ jobs:
100114
101115 - name : build rustpython
102116 run : cargo build --release --verbose
117+
103118 - name : Collect what is left data
104119 run : |
105120 chmod +x ./scripts/whats_left.py
106121 ./scripts/whats_left.py --features "ssl,sqlite" > whats_left.temp
107122 env :
108123 RUSTPYTHONPATH : ${{ github.workspace }}/Lib
124+
109125 - name : Upload data to the website
110126 if : ${{ github.event_name != 'pull_request' }}
111127 env :
@@ -160,12 +176,16 @@ jobs:
160176 - uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
161177
162178 - run : cargo install cargo-criterion
179+
163180 - name : build benchmarks
164181 run : cargo build --release --benches
182+
165183 - name : collect execution benchmark data
166184 run : cargo criterion --bench execution
185+
167186 - name : collect microbenchmarks data
168187 run : cargo criterion --bench microbenchmarks
188+
169189 - name : restructure generated files
170190 run : |
171191 cd ./target/criterion/reports
@@ -178,6 +198,7 @@ jobs:
178198 cd ..
179199 mv reports/* .
180200 rmdir reports
201+
181202 - name : upload benchmark data to the website
182203 if : ${{ github.event_name != 'pull_request' }}
183204 env :
0 commit comments