Modernize GitHub Actions workflows (#151)
This closes https://github.com/rust-lang/stacker/issues/147.
Summary
- upgrade
actions/checkoutfrom v4 to v7 andactions/cachefrom v4 to v6- replace the archived
actions-rs/toolchainandactions-rs/cargoactions withdtolnay/rust-toolchainand direct Cargo/Cross commands- fix the two failing i686 clang-cl jobs by using the LLVM toolchain bundled with the Windows runner instead of the removed MSYS2
mingw-w64-i686-clangpackage- remove the deprecated MSYS2 MINGW32/MINGW64 dependency from Windows GNU testing by using the matching Rust GNU host toolchains
- add read-only token permissions, stale-run cancellation, consistent timeouts, and a working llvm-mingw cache
Failure analysis
Both failures in run 30741090730 stop in
msys2/setup-msys2witherror: target not found: mingw-w64-i686-clang. MSYS2 phased out its 32-bit environments and removed CLANG32, so the oldC:/msys64/mingw32/bin/clang-cl.exesetup is no longer maintainable.The replacement uses
C:/Program Files/LLVM/bin/clang-cl.exe, which is provided by the GitHub-hosted Windows image and supports both MSVC targets. Windows GNU jobs now install the target-specific Rust host toolchain, including the officialrust-mingwcomponent, instead of relying on legacy MSYS2 environments.Validation
go run github.com/rhysd/actionlint/cmd/actionlint@v1.7.12 -color .github/workflows/test.ymlcargo test --all-targetscargo test --manifest-path psm/Cargo.toml --all-targetsgit diff --check- GitHub Actions run 30741670026: all 201 jobs passed
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
stacker
Documentation
A stack-growth library for Rust. Enables annotating fixed points in programs where the stack may want to grow larger. Spills over to the heap if the stack has hit its limit.
This library is intended on helping implement recursive algorithms.
Platform Support
This library currently uses psm for its cross platform capabilities, with a notable exception of Windows, which uses an implementation based on Fibers. See the README for psm for the support table.
On all unsupported platforms this library is a noop. It should compile and run, but it won’t actually grow the stack and code will continue to hit the guard pages typically in place.
License
This project is licensed under either of
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.