mirror of
https://github.com/rust-lang/cargo.git
synced 2025-09-28 11:20:36 +00:00
chore: remove x86_64-apple-darwin from CI and tests
RFC 3841 has merged, and x86_64-apple-darwin will be demoted to tier-2 in 1.90.0. In Cargo we usually run test against tier-1 platforms, so x86_64-apple-darwin should be removed. Also, that target platform is often the slowest one in CI, we are happy to remove it to save us a couple of minutes. https://rust-lang.github.io/rfcs/3841-demote-x86_64-apple-darwin.html
This commit is contained in:
parent
2e7bc06c34
commit
9614bc251b
4
.github/workflows/main.yml
vendored
4
.github/workflows/main.yml
vendored
@ -143,10 +143,6 @@ jobs:
|
|||||||
os: macos-14
|
os: macos-14
|
||||||
rust: stable
|
rust: stable
|
||||||
other: x86_64-apple-darwin
|
other: x86_64-apple-darwin
|
||||||
- name: macOS x86_64 nightly
|
|
||||||
os: macos-13
|
|
||||||
rust: nightly
|
|
||||||
other: x86_64-apple-ios
|
|
||||||
- name: macOS aarch64 nightly
|
- name: macOS aarch64 nightly
|
||||||
os: macos-14
|
os: macos-14
|
||||||
rust: nightly
|
rust: nightly
|
||||||
|
@ -38,10 +38,8 @@ pub fn alternate() -> &'static str {
|
|||||||
|
|
||||||
/// A possible alternate target-triple to build with.
|
/// A possible alternate target-triple to build with.
|
||||||
pub(crate) fn try_alternate() -> Option<&'static str> {
|
pub(crate) fn try_alternate() -> Option<&'static str> {
|
||||||
if cfg!(all(target_os = "macos", target_arch = "aarch64")) {
|
if cfg!(target_os = "macos") {
|
||||||
Some("x86_64-apple-darwin")
|
Some("x86_64-apple-darwin")
|
||||||
} else if cfg!(target_os = "macos") {
|
|
||||||
Some("x86_64-apple-ios")
|
|
||||||
} else if cfg!(target_os = "linux") {
|
} else if cfg!(target_os = "linux") {
|
||||||
Some("i686-unknown-linux-gnu")
|
Some("i686-unknown-linux-gnu")
|
||||||
} else if cfg!(all(target_os = "windows", target_env = "msvc")) {
|
} else if cfg!(all(target_os = "windows", target_env = "msvc")) {
|
||||||
|
@ -132,16 +132,6 @@ The name of the target can be fetched with the [`cross_compile::alternate()`]
|
|||||||
function. The name of the host target can be fetched with
|
function. The name of the host target can be fetched with
|
||||||
[`cargo_test_support::rustc_host()`].
|
[`cargo_test_support::rustc_host()`].
|
||||||
|
|
||||||
The cross-tests need to distinguish between targets which can *build* versus
|
|
||||||
those which can actually *run* the resulting executable. Unfortunately, macOS is
|
|
||||||
currently unable to run an alternate target (Apple removed 32-bit support a
|
|
||||||
long time ago). For building, `x86_64-apple-darwin` will target
|
|
||||||
`x86_64-apple-ios` as its alternate. However, the iOS target can only execute
|
|
||||||
binaries if the iOS simulator is installed and configured. The simulator is
|
|
||||||
not available in CI, so all tests that need to run cross-compiled binaries are
|
|
||||||
disabled on CI. If you are running on macOS locally, and have the simulator
|
|
||||||
installed, then it should be able to run them.
|
|
||||||
|
|
||||||
If the test needs to run the cross-compiled binary, then it should have
|
If the test needs to run the cross-compiled binary, then it should have
|
||||||
something like this to exit the test before doing so:
|
something like this to exit the test before doing so:
|
||||||
|
|
||||||
|
@ -124,28 +124,12 @@ pub fn disabled() -> bool {
|
|||||||
install the necessary libraries.
|
install the necessary libraries.
|
||||||
",
|
",
|
||||||
);
|
);
|
||||||
} else if cfg!(all(target_os = "macos", target_arch = "aarch64")) {
|
} else if cfg!(target_os = "macos") {
|
||||||
message.push_str(
|
message.push_str(
|
||||||
"
|
"
|
||||||
macOS on aarch64 cross tests to target x86_64-apple-darwin.
|
macOS on aarch64 cross tests to target x86_64-apple-darwin.
|
||||||
This should be natively supported via Xcode, nothing additional besides the
|
This should be natively supported via Xcode, nothing additional besides the
|
||||||
rustup target should be needed.
|
rustup target should be needed.
|
||||||
",
|
|
||||||
);
|
|
||||||
} else if cfg!(target_os = "macos") {
|
|
||||||
message.push_str(
|
|
||||||
"
|
|
||||||
macOS on x86_64 cross tests to target x86_64-apple-ios, which requires the iOS
|
|
||||||
SDK to be installed. This should be included with Xcode automatically. If you
|
|
||||||
are using the Xcode command line tools, you'll need to install the full Xcode
|
|
||||||
app (from the Apple App Store), and switch to it with this command:
|
|
||||||
|
|
||||||
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
|
|
||||||
|
|
||||||
Some cross-tests want to *run* the executables on the host. These tests will
|
|
||||||
be ignored if this is not possible. On macOS, this means you need an iOS
|
|
||||||
simulator installed to run these tests. To install a simulator, open Xcode, go
|
|
||||||
to preferences > Components, and download the latest iOS simulator.
|
|
||||||
",
|
",
|
||||||
);
|
);
|
||||||
} else if cfg!(target_os = "windows") {
|
} else if cfg!(target_os = "windows") {
|
||||||
@ -202,19 +186,6 @@ pub fn can_run_on_host() -> bool {
|
|||||||
if disabled() {
|
if disabled() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// macos is currently configured to cross compile to x86_64-apple-ios
|
assert!(CAN_RUN_ON_HOST.load(Ordering::SeqCst));
|
||||||
// which requires a simulator to run. Azure's CI image appears to have the
|
return true;
|
||||||
// SDK installed, but are not configured to launch iOS images with a
|
|
||||||
// simulator.
|
|
||||||
if cfg!(target_os = "macos") {
|
|
||||||
if CAN_RUN_ON_HOST.load(Ordering::SeqCst) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
println!("Note: Cannot run on host, skipping.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
assert!(CAN_RUN_ON_HOST.load(Ordering::SeqCst));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user