Commit graph

2523 commits

Author SHA1 Message Date
Guillaume Gomez
0846035d2d
Rollup merge of #141487 - GuillaumeGomez:update-askama, r=notriddle
Update askama to `0.14.0`

[Askama 0.14.0 release notes](https://github.com/askama-rs/askama/releases/tag/v0.14.0)

Just one change needed for a filter in rustdoc.

r? ```@notriddle```
2025-05-24 21:23:48 +02:00
Guillaume Gomez
a6438924c9 Update askama version to 0.14.0 in citool 2025-05-24 12:31:21 +02:00
est31
6d71674321 Remove #![feature(let_chains)] from libcore 2025-05-23 02:47:43 +02:00
bors
2eef47813f Auto merge of #141388 - Kobzol:x64-github-runner, r=marcoieni
Move `dist-x86_64-linux` CI job to GitHub temporarily

To make it easier to migrate off the `rust-lang-ci/rust` repository.

r? `@marcoieni`
2025-05-22 18:05:06 +00:00
Matthias Krüger
9507b10ed3
Rollup merge of #141382 - marcoieni:distcheck-free-x86, r=Kobzol
ci: convert distcheck to free runner

try-job: x86_64-gnu-distcheck
2025-05-22 16:04:14 +02:00
Matthias Krüger
8757915a70
Rollup merge of #141355 - marcoieni:citool-errors, r=Kobzol
ci: improve citool job db errors
2025-05-22 16:04:11 +02:00
Jakub Beránek
7d32303574
Move dist-x86_64-linux CI job to GitHub temporarily
To make it easier to migrate off the `rust-lang-ci/rust` repository.
2025-05-22 12:09:37 +02:00
MarcoIeni
27677ef143
ci: convert distcheck to free runner 2025-05-22 09:53:35 +02:00
MarcoIeni
f57a64ae5a
ci: improve citool job db errors 2025-05-21 18:50:01 +02:00
Matthias Krüger
7a53ef7af3
Rollup merge of #141280 - Kobzol:docker-rust-lang-cache, r=marcoieni
Use Docker cache from the current repository

This is needed to make the cache work after moving CI from the `rust-lang-ci` org to `rust-lang`. Shouldn't be merged until we actually move bors.

Context: https://github.com/rust-lang/infra-team/issues/188

r? `@marcoieni`
2025-05-21 15:38:09 +02:00
Matthias Krüger
64a5a66666
Rollup merge of #140994 - onur-ozkan:cc2ar-removal, r=albertlarsan68
replace `cc_detect::cc2ar` with `cc::try_get_archiver`

~~Awaiting new release of [cc](https://crates.io/crates/cc) version with https://github.com/rust-lang/cc-rs/pull/1456 to bump the version.~~

~~Blocked by https://github.com/rust-lang/cc-rs/pull/1456.~~

Kind a self-explanatory.

try-job: dist-android
2025-05-21 11:28:44 +02:00
Matthias Krüger
c5920278d3
Rollup merge of #141078 - marcoieni:split-dist-arm-linux, r=Kobzol
ci: split dist-arm-linux job

try-job: `dist-arm-linux-*`
2025-05-21 08:05:18 +02:00
Matthias Krüger
f547636b7e
Rollup merge of #141042 - marcoieni:split-dist-powerpc64le-linux, r=Kobzol
ci: split powerpc64le-linux job

try-job: `dist-powerpc64le-linux-*`
2025-05-21 08:05:15 +02:00
onur-ozkan
5c4eb87dbe add missing PATH
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-21 06:18:17 +03:00
bors
bc82152863 Auto merge of #140757 - dpaoliello:llvm20, r=Kobzol
[win][ci] Update LLVM toolchain used to build LLVM to 20

While trying to get the aarch64-msvc build working correctly (#140136), I needed to update the version of LLVM used to build LLVM in Windows CI runners to 20 (as this has improved support for Arm64 and Arm64EC on Windows).

This catches Windows up to Linux which was updated to 20 by #137189

try-job: `x86_64-apple-*`
try-job: `aarch64-apple`
try-job: `x86_64-msvc-*`
try-job: `i686-msvc-*`
try-job: `x86_64-mingw-*`
2025-05-20 19:29:34 +00:00
MarcoIeni
a8173fcd1f
ci: split powerpc64le-linux job 2025-05-20 15:16:29 +02:00
Jakub Beránek
eb530325f0
Use Docker cache from the current repository
This is needed to make the cache work after moving CI from the `rust-lang-ci` org to `rust-lang`.
2025-05-20 10:39:34 +02:00
bors
7068c8bd81 Auto merge of #140754 - dpaoliello:cygwinpath, r=marcoieni
[win][CI] Convert paths to Windows format before adding to PATH

While trying to get the `aarch64-msvc` build working correctly (#140136), I noticed that the `PATH` observed during the Rust steps of the build on Windows builds had some entries still in MinGW format, which means that Windows would not be able to use them correctly:

From <https://github.com/rust-lang/rust/actions/runs/14606167901/job/40975555680#step:28:192> note the path for `ninja` and `sccache`.

```
PATH = Some(C:\a\rust\rust\src\ci\citool\../../../build/citool\debug\deps;C:\a\rust\rust\src\ci\citool\../../../build/citool\debug;C:\Users\runneradmin\.rustup\toolchains\stable-aarch64-pc-windows-msvc\lib\rustlib\aarch64-pc-windows-msvc\lib;C:\Program Files\Git\clangarm64/bin;C:\Program Files\Git\usr\bin;C:\Users\runneradmin\bin;/c/a/rust/rust/ninja;/c/a/rust/rust/sccache;C:\Users\runneradmin/.cargo/bin;C:\aliyun-cli;C:\vcpkg;C:\Program Files (x86)\NSIS\;C:\Program Files\Mercurial\;C:\hostedtoolcache\windows\stack\3.3.1\x64;C:\mingw64\bin;C:\Program Files\dotnet;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files (x86)\R\R-4.4.2\bin\x64;C:\SeleniumWebDrivers\GeckoDriver;C:\SeleniumWebDrivers\EdgeDriver\;C:\SeleniumWebDrivers\ChromeDriver;C:\Program Files (x86)\sbt\bin;C:\Program Files (x86)\GitHub CLI;C:\Program Files\Git\bin;C:\Program Files (x86)\pipx_bin;C:\npm\prefix;C:\hostedtoolcache\windows\go\1.21.13\arm64\bin;C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts;C:\hostedtoolcache\windows\Python\3.9.13\x64;C:\hostedtoolcache\windows\Ruby\3.0.7\x64\bin;C:\Program Files\OpenSSL\bin;C:\tools\kotlinc\bin;C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\8.0.442-6\x64\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin;C:\ProgramData\kind;C:\ProgramData\Chocolatey\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\PowerShell\7\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\160\DTS\Binn\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\ProgramData\chocolatey\lib\pulumi\tools\Pulumi\bin;C:\Program Files\CMake\bin;C:\ProgramData\chocolatey\lib\maven\apache-maven-3.9.9\bin;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files\Git\clangarm64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\GitHub CLI\;c:\tools\php;C:\Program Files (x86)\sbt\bin;C:\Program Files\Amazon\AWSCLIV2\;C:\Program Files\Amazon\SessionManagerPlugin\bin\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\LLVM\bin;C:\Users\runneradmin\.dotnet\tools;C:\Users\runneradmin\AppData\Local\Microsoft\WindowsApps)
```
The fix for this is to use `cygpath` to convert from the Cygwin format back to native Windows format before adding to the `PATH`.

---
try-job: dist-aarch64-msvc
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-msvc-1
try-job: i686-msvc-2
try-job: x86_64-mingw-1
try-job: x86_64-mingw-2
try-job: dist-i686-mingw
2025-05-19 09:51:31 +00:00
MarcoIeni
c2792b29c3
ci: split dist-arm-linux job 2025-05-18 12:12:20 +02:00
Matthias Krüger
f0b115015a
Rollup merge of #140917 - RalfJung:checktools, r=WaffleLapkin
checktools.sh: fix bashism

Follow-up to https://github.com/rust-lang/rust/pull/140903. Turns out `tests/{pass,panic}` only properly expands in bash, not in dash. :/

r? `@WaffleLapkin`
2025-05-17 15:45:20 +02:00
Matthias Krüger
0031282c4d
Rollup merge of #141036 - marcoieni:split-dist-ohos, r=Kobzol
ci: split the dist-ohos job

try-job: `dist-ohos-*`
2025-05-17 10:33:10 +02:00
Matthias Krüger
9808b07bc5
Rollup merge of #141009 - emmanuel-ferdman:master, r=marcoieni
Migrate to modern datetime API

# PR Summary
This small PR resolves the `datetime` library warnings:
```python
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). or datetime.datetime.utcnow()
```
Note that `.replace(tzinfo=None)` allows to keep the original behavior where the time appears as a naive UTC timestamp (i.e., without any timezone offset). Comparision:
```python
# With .utcnow() or .now(datetime.timezone.utc).replace(tzinfo=None)
Time,Idle
2025-05-14T15:40:25.013414,98.73417721518987

# With .now(datetime.timezone.utc)
Time,Idle
2025-05-14T15:40:25.013414+00:00,98.73417721518987
```
2025-05-16 07:19:42 +02:00
Daniel Paoliello
e71deaa88a [win][CI] Convert paths to Windows format before adding to PATH 2025-05-15 09:49:37 -07:00
MarcoIeni
839534e801
ci: split the dist-ohos job 2025-05-15 15:41:11 +02:00
Jieyou Xu
f4ce73ede2
Temporarily use Windows Server 2022 instead of Windows Server 2025 images
At the moment, it seems like Windows Server 2025 20250504.1.0 is
misconfigured causing insufficient disk space failures. Temporarily go
back to Windows Server 2022 in the hope that those are not also
misconfigured.
2025-05-15 16:34:22 +08:00
Emmanuel Ferdman
754b06f978
Migrate to modern datetime API
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-05-14 08:41:30 -07:00
Ralf Jung
f96fb61e4b checktools.sh: fix bashism 2025-05-11 09:28:47 +02:00
Ralf Jung
6814c38da2 test intrinsic fallback bodies with Miri 2025-05-10 21:47:03 +02:00
Daniel Paoliello
036b5fcb02 [win] Update LLVM toolchain used to build LLVM to 20 2025-05-07 11:05:27 -07:00
Guillaume Gomez
a92ba60d0f
Rollup merge of #140135 - GuillaumeGomez:sidebars-image, r=rustdoc
Unify sidebar buttons to use the same image

Part of https://github.com/rust-lang/rust/issues/139832.

The source sidebar looks like this with the new image:

![image](https://github.com/user-attachments/assets/df4fee52-fb71-4794-91b7-3afc6d2aab70)

You can test it [here](https://rustdoc.crud.net/imperio/sidebar-images/src/foo/foo.rs.html).

r? `@notriddle`
2025-05-06 14:50:45 +02:00
Miguel Ojeda
6e26762224 CI: rfl: move job forward to Linux v6.15-rc4
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2025-04-29 17:40:17 +02:00
Guillaume Gomez
117202e535
Rollup merge of #140349 - marcoieni:codebuild-linux-large-runners, r=Kobzol
ci: use aws codebuild for the `dist-x86_64-linux` job

try-job: dist-x86_64-linux
2025-04-28 13:30:47 +02:00
Guillaume Gomez
64b3643454
Rollup merge of #140347 - marcoieni:free-disk-codebuild, r=jdno
ci: clean more disk space in codebuild

try-job: dist-arm-linux
2025-04-28 13:30:46 +02:00
MarcoIeni
480d007616
ci: use aws codebuild for the dist-x86_64-linux job 2025-04-28 08:48:10 +02:00
Chris Denton
52b846dca3
Rollup merge of #138737 - Ayush1325:r-efi-update, r=tgross35
uefi: Update r-efi

- Bump up the version to 5.2.0

try-job: x86_64-gnu-distcheck
try-job: x86_64-gnu
try-job: test-various
2025-04-28 01:58:47 +00:00
Chris Denton
009a84fbe1
Rollup merge of #138395 - Kobzol:ci-download-gcc, r=Mark-Simulacrum
Download GCC from CI on test builders

This should reduce the duration of the `x86_64-gnu-llvm-18` job, which runs on PR CI, which is currently the only one that builds GCC (outside of the x64 dist builder).

Since we handle the GCC download in the GCC step, and not eagerly in config, we can set this flag globally across all test builders, as it won't do anything unless they actually try to build GCC.

Opening as a draft to test if it works on CI, because I still need to implement logic to avoid the download if there are any local modifications to GCC (essentially the "if-unchanged" mode, although I want to try something a bit different).

r? ```@ghost```
2025-04-28 01:58:47 +00:00
MarcoIeni
474466dc16
ci: clean more disk space in codebuild 2025-04-27 11:03:53 +02:00
Ayush Singh
d40d424d43
CI: docker: host-x86_64: test-various: uefi_qemu_test: Update r-efi
- Update r-efi to 5.2.0

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-04-27 14:07:33 +05:30
Matthias Krüger
7ba71d38d8
Rollup merge of #140148 - marcoieni:ci-aws-codebuild, r=Kobzol
CI: use aws codebuild for job dist-arm-linux

try-job: dist-arm-linux
2025-04-25 00:53:58 +02:00
Guillaume Gomez
821925e8a4 Update browser-ui-test version to 0.20.6 2025-04-23 20:51:07 +02:00
MarcoIeni
18c3370e5d
CI: use aws codebuild for job dist-arm-linux 2025-04-23 13:31:24 +02:00
Jakub Beránek
d4011ae043 Download GCC from CI on test builders 2025-04-23 11:04:56 +02:00
bors
645d0ad2a4 Auto merge of #138591 - Kobzol:git-ci, r=Mark-Simulacrum
Refactor git change detection in bootstrap

While working on https://github.com/rust-lang/rust/pull/138395, I finally found the courage to delve into the insides of git path change detection in bootstrap, which is used (amongst other things) to detect if we should rebuilt od download `[llvm|rustc|gcc]`. I found it a bit hard to understand, and given that this code was historically quite fragile, I thought that it would be better to rebuild it from scratch.

The previous approach had a bunch of limitations:
- It separated the computation of "are there local changes?" and "what upstream SHA should we use?" even though these two things are intertwined.
- It used hacks to work around what happens on CI.
- It had special cases for CI scattered throughout the codebase, rather than centralized in one place.
- It wasn't documented enough and didn't have tests for the git behavior.

The current approach should hopefully resolve all of that. I implemented a single entrypoint called `check_path_modifications` (naming bikeshed pending, half of the time I spend on this PR was thinking about names, as it's quite tricky here..) that explicitly receives a mode of operation (in CI or outside CI), and accordingly figures out that upstream SHA that we should use for downloading artifacts and it also figures out if there are any local changes. Users of this function can then use this unified output to implement `download-ci-X` and other functionality. Notably, this change detection no longer uses `git merge-base`, which makes it easier to use and doesn't require setting up remotes.

I also added a bunch of integration tests that literally spawn a git repository on disk and then check that the function can deal with various situations (PR CI, auto/try CI, local builds).

After I built this inner layer, I used it for downloading GCC, LLVM and rustc. The latter two (and especially rustc) were using the `last_modified_commit` function before, but in all cases but one this function was actually only used to check if there are any local changes, which was IMO confusing. The LLVM handling would deserve a bit of refactoring, but that's a larger change that can be done as a follow-up.

I hope that the implementation is now clear and easy to understand, so that in combination with the tests we can have more confidence that it does what we want. I tried to include a lot of documentation in the code, so I won't be repeating the actual implementation details here, if there are any questions, I'll add the answers to the documentation too :)

The new approach explicitly supports three scenarios:
- Running on PR CI, where we have one upstream bors parent commit and one PR merge commit made by GitHub.
- Running on try/auto CI, where we have one upstream bors parent commit and one PR merge commit made by bors.
- Running locally, where we assume that we have at least one upstream bors parent commit in our git history.

I removed the handling of upstreams on CI, as I think that it shouldn't be needed and I considered it to be a hack. However, it's possible that there are other use-cases that I haven't considered, so I want to ask around if people have other situations than the three use-cases described above. If there are other such use-cases, I would like to include them in the new centralized implementation and add them to the git test suite, rather than going back to the old ways :)

In particular, the code before relied on `git merge-base`, but I don't see why we can't just lookup the most recent bors commit and assume that is a merge commit that is also upstream? I might be running into Chesterton's Fence here :)

CC `@pietroalbini` To make sure that this won't break downstream users of Rust's CI.

Best reviewed commit by commit.

Companion PRs:
- For testing beta: https://github.com/rust-lang/rust/pull/138597

r? `@onur-ozkan`

Fixes: https://github.com/rust-lang/rust/issues/101907

try-job: x86_64-gnu-aux
try-job: aarch64-gnu
try-job: dist-x86_64-apple
2025-04-23 03:10:04 +00:00
Jakub Beránek
432c4a80e9 Remove the add_dummy_commit.sh hack
The new git tests should be enough to check this scenario. We should ideally not be creating dummy commits on CI.
2025-04-20 09:35:39 +02:00
Jakub Beránek
64795ecb87 Remove setup-upstream-remote.sh and upstream handling.
It shouldn't be needed anymore.
2025-04-20 09:13:56 +02:00
Jakub Beránek
de9d8e9f71 Remove stray newline from post-merge report 2025-04-20 08:57:28 +02:00
Jakub Beránek
b18e373053 Reduce duplicated test prefixes in nested subdirectories
`assembly/asm` contained a test named `asm/aarch64-el2vmsa.rs`, while it should have been only `arch64-el2vmsa.rs`.
2025-04-18 12:44:39 +02:00
Jakub Beránek
65ce38a4c9 Add a note that explains the counts 2025-04-18 12:32:19 +02:00
Jakub Beránek
cecf16785f
Add a note about the test dashboard to the post-merge report 2025-04-17 17:38:15 +02:00
Jakub Beránek
08cb187d26
Turn test_dashboard into a file 2025-04-17 17:26:40 +02:00