@@ -11,10 +11,9 @@ name: CI
1111on :
1212 push :
1313 branches :
14- - auto
15- - try
16- - try-perf
14+ - automation/bors/auto
1715 - automation/bors/try
16+ - try-perf
1817 pull_request :
1918 branches :
2019 - " **"
@@ -32,9 +31,10 @@ defaults:
3231
3332concurrency :
3433 # For a given workflow, if we push to the same branch, cancel all previous builds on that branch.
35- # We add an exception for try builds (try branch) and unrolled rollup builds (try-perf), which
36- # are all triggered on the same branch, but which should be able to run concurrently.
37- group : ${{ github.workflow }}-${{ ((github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try-perf' || github.ref == 'refs/heads/automation/bors/try') && github.sha) || github.ref }}
34+ # We add an exception for try builds (automation/bors/try branch) and unrolled rollup builds
35+ # (try-perf), which are all triggered on the same branch, but which should be able to run
36+ # concurrently.
37+ group : ${{ github.workflow }}-${{ ((github.ref == 'refs/heads/try-perf' || github.ref == 'refs/heads/automation/bors/try') && github.sha) || github.ref }}
3838 cancel-in-progress : true
3939env :
4040 TOOLSTATE_REPO : " https://github.com/rust-lang-nursery/rust-toolstate"
@@ -52,11 +52,11 @@ jobs:
5252 run_type : ${{ steps.jobs.outputs.run_type }}
5353 steps :
5454 - name : Checkout the source code
55- uses : actions/checkout@v4
55+ uses : actions/checkout@v5
5656 - name : Test citool
5757 # Only test citool on the auto branch, to reduce latency of the calculate matrix job
5858 # on PR/try builds.
59- if : ${{ github.ref == 'refs/heads/auto' }}
59+ if : ${{ github.ref == 'refs/heads/automation/bors/ auto' }}
6060 run : |
6161 cd src/ci/citool
6262 CARGO_INCREMENTAL=0 cargo test
7979 # access the environment.
8080 #
8181 # We only enable the environment for the rust-lang/rust repository, so that CI works on forks.
82- environment : ${{ ((github.repository == 'rust-lang/rust' && (github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try -perf' || github.ref == 'refs/heads/automation/bors/try' || github.ref == 'refs/heads/auto')) && 'bors') || '' }}
82+ environment : ${{ ((github.repository == 'rust-lang/rust' && (github.ref == 'refs/heads/try-perf' || github.ref == 'refs/heads/automation/bors/try' || github.ref == 'refs/heads/automation/bors /auto')) && 'bors') || '' }}
8383 env :
8484 CI_JOB_NAME : ${{ matrix.name }}
8585 CI_JOB_DOC_URL : ${{ matrix.doc_url }}
@@ -113,16 +113,16 @@ jobs:
113113 run : git config --global core.autocrlf false
114114
115115 - name : checkout the source code
116- uses : actions/checkout@v4
116+ uses : actions/checkout@v5
117117 with :
118118 fetch-depth : 2
119119
120- # Free up disk space on Linux and Windows by removing preinstalled components that
120+ # Free up disk space on Linux by removing preinstalled components that
121121 # we do not need. We do this to enable some of the less resource
122122 # intensive jobs to run on free runners, which however also have
123123 # less disk space.
124124 - name : free up disk space
125- run : src/ci/scripts/free-disk-space.sh
125+ run : src/ci/scripts/free-disk-space-linux .sh
126126 if : matrix.free_disk
127127
128128 # If we don't need to free up disk space then just report how much space we have
@@ -246,6 +246,8 @@ jobs:
246246 run : src/ci/scripts/create-doc-artifacts.sh
247247
248248 - name : print disk usage
249+ # We also want to know the disk usage when the job fails.
250+ if : always()
249251 run : |
250252 echo "disk usage:"
251253 df -h
@@ -286,7 +288,7 @@ jobs:
286288 fi
287289
288290 # Get closest bors merge commit
289- PARENT_COMMIT=`git rev-list --author='bors <bors @rust-lang.org> ' -n1 --first-parent HEAD^1`
291+ PARENT_COMMIT=`git rev-list --author='bors@rust-lang.org' --author='122020455+rust-bors\[bot\]@users.noreply.github.com ' -n1 --first-parent HEAD^1`
290292
291293 ./build/citool/debug/citool postprocess-metrics \
292294 --job-name ${CI_JOB_NAME} \
@@ -303,29 +305,22 @@ jobs:
303305 DD_GITHUB_JOB_NAME : ${{ matrix.full_name }}
304306 run : ./build/citool/debug/citool upload-build-metrics build/cpu-usage.csv
305307
306- # This job isused to tell bors the final status of the build, as there is no practical way to detect
307- # when a workflow is successful listening to webhooks only in our current bors implementation (homu).
308+ # This job is used to publish toolstate for successful auto builds.
308309 outcome :
309- name : bors build finished
310+ name : publish toolstate
310311 runs-on : ubuntu-24.04
311312 needs : [ calculate_matrix, job ]
312- # !cancelled() executes the job regardless of whether the previous jobs passed or failed
313- if : ${{ !cancelled() && contains(fromJSON('["auto", "try"]'), needs.calculate_matrix.outputs.run_type) }}
313+ if : ${{ needs.calculate_matrix.outputs.run_type == 'auto' }}
314+ environment : ${{ (github.repository == 'rust-lang/rust' && 'bors') || '' }}
314315 steps :
315316 - name : checkout the source code
316- uses : actions/checkout@v4
317+ uses : actions/checkout@v5
317318 with :
318319 fetch-depth : 2
319- # Calculate the exit status of the whole CI workflow.
320- # If all dependent jobs were successful, this exits with 0 (and the outcome job continues successfully).
321- # If a some dependent job has failed, this exits with 1.
322- - name : calculate the correct exit status
323- run : jq --exit-status 'all(.result == "success" or .result == "skipped")' <<< '${{ toJson(needs) }}'
324- # Publish the toolstate if an auto build succeeds (just before push to master)
320+ # Publish the toolstate if an auto build succeeds (just before push to the default branch)
325321 - name : publish toolstate
326322 run : src/ci/publish_toolstate.sh
327323 shell : bash
328- if : needs.calculate_matrix.outputs.run_type == 'auto'
329324 env :
330325 TOOLSTATE_ISSUES_API_URL : https://api.github.com/repos/rust-lang/rust/issues
331326 TOOLSTATE_PUBLISH : 1
0 commit comments