ci(release): M142 发布白名单只留 windows-x64 + 修掉诊断脚本在 -e 下先退出

1) PUBLISH_SLOTS 去掉 windows-arm64:白名单齐全性检查是「名单内少一档就 fail」,
   arm64 连试四轮未成 ⇒ Release 永远 fail、x64 编成功也发不出去。arm64 仍留在矩阵里
   照跑取证(诊断注解保留),红不挡发布;修好后把键加回这一行即可(一行可逆)。

2) 修 M141 自毁 bug:`shell: bash` 是 `bash -eo pipefail`,脚本里的 `set -uo pipefail`
   关不掉 -e,于是 `vc_lib=$(find 不存在的根 | head -n1)` 被 pipefail 判非零后 errexit
   当场退出,一条注解都没打(上一轮只剩 exit code 1)。现在显式 `set +e`、每处探测
   `|| true`、问题记进 ERRORS、4 行实况快照无论齐不齐都先打完,再由显式 exit 定红绿;
   齐全时快照降级为 notice(绿跑也留「探测没坏」的证据)。

3) 新增 arm64 失败收尾注解步骤(`if: failure()`),红在其他步骤时也能说清红在哪、不影响 x64。

4) packaging/README.md §1/§3/§4/§7.5/§9 与 release-notes.md 的 Downloads/Support matrix/
   Install 同步为「当前只发布 windows-x64,arm64 待修」。
This commit is contained in:
AskaEth committed 2026-11-06 12:30:07 +08:00
1 parent cc2ecd61e6
commit a70e901bea
3 files changed
+123 -113

No files matched your search

+21 -15
View File
@@ -11,8 +11,13 @@ Asset names are `<name>_<version>_<platform>_<arch>`, underscore separated — t
| Platform | Asset | Notes |
| --- | --- | --- |
| Windows 10/11 x64 | `unlucky-launcher_{{VERSION}}_windows_x64.exe` | single exe, double-click to run |
| Windows 11 ARM64 | `unlucky-launcher_{{VERSION}}_windows_arm64.exe` | single exe, runs natively on ARM64 Windows |
| Windows 10/11 x64 | `unlucky-launcher_{{VERSION}}_windows_x64.exe` | single exe, double-click to run; this is also what you run on ARM64 Windows (x64 emulation) |
**Windows ARM64 is not part of this release.** CI still builds it on a native `windows-11-arm` runner for
evidence, but that slot's toolchain check has not gone green yet, so
`unlucky-launcher_{{VERSION}}_windows_arm64.exe` is deliberately kept out of the download list and out of
`SHA256SUMS.txt` instead of handing out a build nobody has verified. `windows-x64` is the only published
slot; ARM64 rejoins this table as soon as its build is green (one line in the workflow's `PUBLISH_SLOTS`).
**This release ships Windows only, and CI builds Windows only.** The Linux (x64 / arm64) and macOS
(Apple Silicon / Intel) slots are not built by the release workflow at all — they have not been verified
@@ -21,10 +26,10 @@ stay out of the download list and out of `SHA256SUMS.txt` until that verificatio
workflow run can build all six slots for that purpose, but the four extra slots are never published. The
support matrix below marks those slots accordingly.
The Windows assets are bare `.exe` files, so `LICENSE`, `NOTICE` and `README.md` are attached to this
release next to them: the license terms travel with every download. Slots that ship an archive (Linux /
macOS, once published) unpack to one top-level directory of the same name holding the binary plus those
three documents.
The Windows asset is a bare `.exe`, so `LICENSE`, `NOTICE` and `README.md` are attached to this release
next to it: the license terms travel with every download. Slots that ship an archive (Linux / macOS, once
published) unpack to one top-level directory of the same name holding the binary plus those three
documents.
## Command line
@@ -46,7 +51,7 @@ Published = shipped as a download of **this** release, listed in `SHA256SUMS.txt
| Platform | Status in this release | Level | Runtime requirements |
| --- | --- | --- | --- |
| Windows 10/11 x64 | **published** | first class | nothing beyond the OS (UCRT is part of Win10+) |
| Windows 11 ARM64 | **published** | first class (launcher artifact) | nothing extra; the launcher runs natively, the game itself runs through the OS x64 emulation layer with an x64 JDK |
| Windows 11 ARM64 | not published (build chasing, unverified) | first class (launcher artifact) | nothing extra; the launcher runs natively, the game itself runs through the OS x64 emulation layer with an x64 JDK |
| macOS 12+ Apple Silicon | not built (unverified) | first class (unverified) | nothing; unsigned build, needs the Gatekeeper workaround |
| macOS 12+ Intel | not built (unverified) | first class (unverified) | same as above |
| Linux x64, X11 | not built (unverified) | first class (unverified) | `libxkbcommon`, `fontconfig`, `libGL` (or software renderer), `libxcb` |
@@ -56,17 +61,18 @@ Published = shipped as a download of **this** release, listed in `SHA256SUMS.txt
| Windows 8.1/8/7 | not built | unsupported | the baseline is Windows 10 |
| Android — Termux + X11 | not built (no CI slot) | experimental, not promised | CLI only and only when built from source; GUI unverified |
Both arm64 rows are formal matrix slots, not the experimental Termux path: Windows ARM64 ships here and
is cross-built with the same static-CRT gate as x64; Linux arm64 is kept as a matrix slot but is not built
by default — someone has to run it on real hardware (via a manual all-slots run) before it joins this list.
The rows above and the matrix table in `packaging/README.md` §9 are the same list — change one, change the other.
`windows-x64` is the only published slot this release; Windows ARM64 is kept out until its build is green
(see Downloads above). Both arm64 rows are formal matrix slots, not the experimental Termux path, and
Linux arm64 is not built by default — someone has to run it on real hardware (via a manual all-slots run)
before it joins this list. The rows above and the matrix table in `packaging/README.md` §9 are the same
list — change one, change the other.
## Install
**Windows** — put the `.exe` anywhere and run it (pick `_windows_arm64.exe` on ARM64 Windows,
`_windows_x64.exe` everywhere else). The first run creates `.ULL/` and `.minecraft/` next to the exe
(portable is the default data mode); the per-user `%APPDATA%\ULL` plus `%APPDATA%\.minecraft`, or a
custom root, are selectable instead.
**Windows** — put the `.exe` anywhere and run it. `_windows_x64.exe` is the only Windows asset in this
release, and it is also what you run on ARM64 Windows (the OS runs it through its x64 emulation layer).
The first run creates `.ULL/` and `.minecraft/` next to the exe (portable is the default data mode); the
per-user `%APPDATA%\ULL` plus `%APPDATA%\.minecraft`, or a custom root, are selectable instead.
Linux / macOS are not part of this release; their asset names are already fixed by the same rule
(`unlucky-launcher_{{VERSION}}_linux_x64.tar.gz`, `_linux_arm64`, `_macos_arm64`, `_macos_x64`) so the