ci: stop repeating the native test matrix inside the stable release run

The release run re-invoked the Full native tests workflow and waited for it
before aggregating packages. That workflow already runs for every pull
request, merge group and main push, so the repeat added no coverage while
its macOS Intel job queued behind the Intel package build and became the
critical path (60 minutes end to end, packages done after 28). Aggregation
now depends on the packaging jobs only; each package still runs its own
runtime conformance and the aggregate still validates every report.
This commit is contained in:
kuddev committed 2026-09-22 21:46:08 +08:00
1 parent 102b9dc58a
commit 97f829844d
2 files changed
+12 -17

No files matched your search

+2 -11
View File
@@ -26,7 +26,7 @@ on:
type: string
default: ""
validated_run:
description: Existing stable run whose Windows native tests passed for source_commit
description: Existing stable or Full native tests run whose Windows tests passed for source_commit
type: string
default: ""
macos_signing:
@@ -119,15 +119,6 @@ jobs:
bash -n scripts/package-linux.sh scripts/package-macos.sh
python3 -m py_compile scripts/stable_release.py scripts/preview_release.py
native-tests:
name: Native tests
permissions:
contents: read
actions: read
if: ${{ !inputs.windows_only }}
needs: prepare
uses: ./.github/workflows/linux-lua.yml
linux:
name: Linux x86_64 stable package
if: ${{ !inputs.windows_only }}
@@ -625,7 +616,7 @@ jobs:
aggregate:
name: Verify stable assets and upload complete set
if: ${{ !inputs.windows_only }}
needs: [prepare, native-tests, linux, macos, windows, windows-arm64]
needs: [prepare, linux, macos, windows, windows-arm64]
runs-on: ubuntu-22.04
env:
PACKAGE_VERSION: ${{ needs.prepare.outputs.version }}
+10 -6
View File
@@ -68,22 +68,26 @@ def notes(checksum_placeholder: bool = True) -> str:
class StableReleaseTests(unittest.TestCase):
def test_stable_workflow_requires_full_native_tests_before_aggregation(self) -> None:
def test_stable_workflow_packages_without_repeating_native_tests(self) -> None:
# The Full native tests workflow already covers every PR, merge group
# and main push; the release run only packages and verifies the runtime
# conformance evidence of each package, so its wall time is bounded by
# the slowest build rather than by test scheduling.
root = Path(__file__).resolve().parents[2]
workflow = (root / ".github/workflows/release.yml").read_text(encoding="utf-8")
native = workflow.split(" native-tests:\n", 1)[1].split("\n linux:\n", 1)[0]
self.assertIn("uses: ./.github/workflows/linux-lua.yml", native)
self.assertNotIn(" native-tests:\n", workflow)
self.assertNotIn("uses: ./.github/workflows/linux-lua.yml", workflow)
shared = (root / ".github/workflows/linux-lua.yml").read_text(encoding="utf-8")
for platform in ("ubuntu-24.04", "windows-2022", "windows-11-arm", "macos-26", "macos-26-intel"):
self.assertIn(platform, shared)
self.assertIn("workflow_call:", shared)
for trigger in ("pull_request:", "merge_group:", "branches: [main]"):
self.assertIn(trigger, shared)
self.assertIn("run: python scripts/ci_native_tests.py", shared)
self.assertIn("cargo check --locked --workspace --release", shared)
self.assertIn("tools/i18n-contract/Cargo.toml", shared)
self.assertNotIn("continue-on-error", shared)
self.assertNotIn("continue-on-error", native)
aggregate = workflow.split("\n aggregate:\n", 1)[1].split("\n publish:\n", 1)[0]
self.assertIn("needs: [prepare, native-tests, linux, macos, windows, windows-arm64]", aggregate)
self.assertIn("needs: [prepare, linux, macos, windows, windows-arm64]", aggregate)
self.assertIn("windows_arm64=True", aggregate)
arm = workflow.split("\n windows-arm64:\n", 1)[1].split("\n aggregate:\n", 1)[0]
for required in ("runs-on: windows-11-arm", "host: aarch64-pc-windows-msvc",