Skip to content

Commit 0d8caf0

Browse files
Merge branch 'master' of github.com:madhav-madhusoodanan/rust into feature_int_format_into
2 parents d9df503 + ae8ab87 commit 0d8caf0

File tree

2,953 files changed

+37528
-21343
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,953 files changed

+37528
-21343
lines changed

.github/ISSUE_TEMPLATE/bootstrap.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Describe what you expected to happen.
3232
Describe what actually happened.
3333
-->
3434

35-
### Bootstrap configuration (config.toml)
35+
### Bootstrap configuration (bootstrap.toml)
3636
```toml
3737
<config>
3838
```

.github/workflows/ci.yml

+32-4
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ jobs:
6868
timeout-minutes: 360
6969
env:
7070
CI_JOB_NAME: ${{ matrix.name }}
71+
CI_JOB_DOC_URL: ${{ matrix.doc_url }}
7172
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
7273
# commit of PR sha or commit sha. `GITHUB_SHA` is not accurate for PRs.
7374
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
@@ -190,8 +191,20 @@ jobs:
190191
CARGO_INCREMENTAL=0 CARGO_TARGET_DIR=../../../build/citool cargo build
191192
192193
- name: run the build
193-
# Redirect stderr to stdout to avoid reordering the two streams in the GHA logs.
194-
run: src/ci/scripts/run-build-from-ci.sh 2>&1
194+
run: |
195+
set +e
196+
# Redirect stderr to stdout to avoid reordering the two streams in the GHA logs.
197+
src/ci/scripts/run-build-from-ci.sh 2>&1
198+
STATUS=$?
199+
set -e
200+
201+
if [[ "$STATUS" -ne 0 && -n "$CI_JOB_DOC_URL" ]]; then
202+
echo "****************************************************************************"
203+
echo "To find more information about this job, visit the following URL:"
204+
echo "$CI_JOB_DOC_URL"
205+
echo "****************************************************************************"
206+
fi
207+
exit ${STATUS}
195208
env:
196209
AWS_ACCESS_KEY_ID: ${{ env.CACHES_AWS_ACCESS_KEY_ID }}
197210
AWS_SECRET_ACCESS_KEY: ${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}
@@ -226,16 +239,31 @@ jobs:
226239
if: github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1'
227240

228241
- name: postprocess metrics into the summary
242+
# This step is not critical, and if some I/O problem happens, we don't want
243+
# to cancel the build.
244+
continue-on-error: true
229245
run: |
230246
if [ -f build/metrics.json ]; then
231-
./build/citool/debug/citool postprocess-metrics build/metrics.json ${GITHUB_STEP_SUMMARY}
247+
METRICS=build/metrics.json
232248
elif [ -f obj/build/metrics.json ]; then
233-
./build/citool/debug/citool postprocess-metrics obj/build/metrics.json ${GITHUB_STEP_SUMMARY}
249+
METRICS=obj/build/metrics.json
234250
else
235251
echo "No metrics.json found"
252+
exit 0
236253
fi
237254
255+
# Get closest bors merge commit
256+
PARENT_COMMIT=`git rev-list --author='bors <[email protected]>' -n1 --first-parent HEAD^1`
257+
258+
./build/citool/debug/citool postprocess-metrics \
259+
--job-name ${CI_JOB_NAME} \
260+
--parent ${PARENT_COMMIT} \
261+
${METRICS} >> ${GITHUB_STEP_SUMMARY}
262+
238263
- name: upload job metrics to DataDog
264+
# This step is not critical, and if some I/O problem happens, we don't want
265+
# to cancel the build.
266+
continue-on-error: true
239267
if: needs.calculate_matrix.outputs.run_type != 'pr'
240268
env:
241269
DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }}

.github/workflows/ghcr.yml

+7
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
# Docker Hub has a rate limit, while ghcr.io doesn't.
66
# Those images are pushed to ghcr.io by this job.
77
#
8+
# While Docker Hub rate limit *shouldn't* be an issue on GitHub Actions,
9+
# it certainly is for AWS codebuild.
10+
#
811
# Note that authenticating to DockerHub or other registries isn't possible
912
# for PR jobs, because forks can't access secrets.
1013
# That's why we use ghcr.io: it has no rate limit and it doesn't require authentication.
@@ -54,6 +57,10 @@ jobs:
5457
"ubuntu:22.04"
5558
# Mirrored because used by all linux CI jobs, including mingw-check-tidy
5659
"moby/buildkit:buildx-stable-1"
60+
# Mirrored because used when CI is running inside a Docker container
61+
"alpine:3.4"
62+
# Mirrored because used by dist-x86_64-linux
63+
"centos:7"
5764
)
5865
5966
# Mirror each image from DockerHub to ghcr.io

.github/workflows/post-merge.yml

+14-4
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,31 @@ jobs:
1616
pull-requests: write
1717
steps:
1818
- uses: actions/checkout@v4
19+
with:
20+
# Make sure that we have enough commits to find the parent merge commit.
21+
# Since all merges should be through merge commits, fetching two commits
22+
# should be enough to get the parent bors merge commit.
23+
fetch-depth: 2
1924
- name: Perform analysis and send PR
25+
env:
26+
GH_TOKEN: ${{ github.token }}
2027
run: |
2128
# Get closest bors merge commit
2229
PARENT_COMMIT=`git rev-list --author='bors <[email protected]>' -n1 --first-parent HEAD^1`
30+
echo "Parent: ${PARENT_COMMIT}"
2331
2432
# Find PR for the current commit
2533
HEAD_PR=`gh pr list --search "${{ github.sha }}" --state merged --json number --jq '.[0].number'`
26-
27-
echo "Parent: ${PARENT_COMMIT}"
2834
echo "HEAD: ${{ github.sha }} (#${HEAD_PR})"
2935
3036
cd src/ci/citool
3137
32-
echo "Post-merge analysis result" > output.log
33-
cargo run --release post-merge-analysis ${PARENT_COMMIT} ${{ github.sha }} >> output.log
38+
printf "<details>\n<summary>What is this?</summary>\n" >> output.log
39+
printf "This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.\n" >> output.log
40+
printf "</details>\n\n" >> output.log
41+
42+
cargo run --release post-merge-report ${PARENT_COMMIT} ${{ github.sha }} >> output.log
43+
3444
cat output.log
3545
3646
gh pr comment ${HEAD_PR} -F output.log

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This file should only ignore things that are generated during a `x.py` build,
22
# generated by common IDEs, and optional files controlled by the user that
3-
# affect the build (such as config.toml).
3+
# affect the build (such as bootstrap.toml).
44
# In particular, things like `mir_dump` should not be listed here; they are only
55
# created during manual debugging and many people like to clean up instead of
66
# having git ignore such leftovers. You can use `.git/info/exclude` to
@@ -34,6 +34,7 @@ Session.vim
3434
!/tests/run-make/thumb-none-qemu/example/.cargo
3535

3636
## Configuration
37+
/bootstrap.toml
3738
/config.toml
3839
/Makefile
3940
config.mk

.ignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
# Make vscode *not* count `config.toml` as ignored, so it is included in search
1+
# Make vscode *not* count `bootstrap.toml` and `config.toml` as ignored, so it is included in search
2+
!/bootstrap.toml
23
!/config.toml

0 commit comments

Comments
 (0)