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:
1 parent
102b9dc58a
commit
97f829844d
2 files changed
+12
-17
No files matched your search
@@ -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 }}
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in new issue
Block a user