mirror of
https://github.com/horizon-rust/horizon.git
synced 2026-11-07 11:06:11 -10:00
macOS on Intel: only the Intel launcher may skip its install smoke test
rdbtCVS's review: the "no build yet" skip covered every platform and every failure (a launcher that failed four times, a script error). Now only the macos-x64 entry skips, and only on a version list that parsed and had no build for it (exit 3); anything else fails the step as before. Plus the known limit in docs/native-mods.md: no Rust toolchain for Intel Macs yet. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
13fd2ee724
commit
7f99b2e8cc
2 files changed
+17
-9
No files matched your search
@@ -202,13 +202,20 @@ jobs:
|
||||
retry() { for i in 1 2 3 4; do "$@" && return 0; sleep $((i * 15)); done; return 1; }
|
||||
retry "$launcher" versions
|
||||
"$launcher" links --json
|
||||
# A new platform's launcher can come out before any game build has its asset (Intel Macs, #1161): then
|
||||
# there is nothing to install yet.
|
||||
any_build='import json, sys; sys.exit(not any(r["available_here"] for r in json.load(sys.stdin)))'
|
||||
if ! retry "$launcher" --json versions | ${{ runner.os == 'Windows' && 'python' || 'python3' }} -c "$any_build"; then
|
||||
echo "::warning::No game build has an asset for ${{ matrix.name }} yet: install not tested"
|
||||
rm -rf "$HORIZON_LAUNCHER_HOME"
|
||||
exit 0
|
||||
# The Intel Mac launcher can come out before any game build has its asset (#1161): then there is nothing
|
||||
# to install yet. Only that entry skips, and only on a version list that parsed and had no build here
|
||||
# (exit 3); a launcher or a script that fails still fails the step.
|
||||
if [[ "${{ matrix.name }}" == macos-x64 ]]; then
|
||||
versions=$(retry "$launcher" --json versions)
|
||||
no_build='import json, sys; sys.exit(3 if not any(r["available_here"] for r in json.load(sys.stdin)) else 0)'
|
||||
status=0
|
||||
python3 -c "$no_build" <<<"$versions" || status=$?
|
||||
if [[ $status == 3 ]]; then
|
||||
echo "::warning::No game build has an asset for ${{ matrix.name }} yet: install not tested"
|
||||
rm -rf "$HORIZON_LAUNCHER_HOME"
|
||||
exit 0
|
||||
fi
|
||||
[[ $status == 0 ]] || exit $status
|
||||
fi
|
||||
retry "$launcher" install latest
|
||||
"$launcher" versions --installed
|
||||
|
||||
+3
-2
@@ -236,8 +236,9 @@ trusting native code is the player's decision, never an agent's.
|
||||
1. **Rust.** The launcher's own toolchain ([`rust_toolchain`](../launcher/src/rust_toolchain.rs)): Rust 1.99.1's
|
||||
official `rustc`, `cargo` and `rust-std` (and `rust-mingw` on Windows), each pinned by SHA-256, downloaded once
|
||||
from static.rust-lang.org into `<launcher data>/rust/`, with its own Cargo home `<launcher data>/cargo/`. No
|
||||
rustup, nothing on the system; the player's own Rust is never used. Windows uses the `windows-gnu` host, which
|
||||
links without Visual Studio. `rust-mingw` only links, so on Windows the toolchain also brings MinGW-w64
|
||||
rustup, nothing on the system; the player's own Rust is never used. It ships for macOS on Apple Silicon, Linux
|
||||
x86-64 and Windows x64; an Intel Mac has none yet, so native builds there stop with "the launcher has none for
|
||||
macos x86_64". Windows uses the `windows-gnu` host, which links without Visual Studio. `rust-mingw` only links, so on Windows the toolchain also brings MinGW-w64
|
||||
(`rust_toolchain::MINGW`: WinLibs' GCC 16.2.0 on MinGW-w64 14.0.0, MSVCRT like `rust-mingw`, one zip pinned by
|
||||
SHA-256, its `mingw64/` without the documentation) on the build's `PATH`: `ring` and `hidapi` compile C,
|
||||
and `windows-sys`' `raw-dylib` imports need `dlltool` and the assembler it runs. The linker is the system's on
|
||||
|
||||
Reference in new issue
Block a user