Skip to content

Fast workflow: download PR portable .exe directly from Actions, no ZIP - #677

Closed
masarray wants to merge 4 commits into
mainfrom
fix/direct-unzipped-portable-exe-actions-20261022
Closed

masarray wants to merge 4 commits into
mainfrom
fix/direct-unzipped-portable-exe-actions-20261022

Conversation

@masarray

Copy link
Copy Markdown
Owner

User request

Each Windows PR/FAT build should offer directly downloadable executable bytes, not an Actions ZIP wrapper. GitHub introduced native unzipped artifacts on 2026-02-26: actions/upload-artifact@v7, archive: false for exactly ONE file (name becomes actual basename).

Actual change — three files, no extra workflow/jobs/uploads

  • .github/workflows/build.yml: replace the last two-file ARSAS-win-x64-portable-single-exe ZIP upload with the single real portable EXE upload using archive: false. The successful Build ARSAS run's Artifacts link downloads ARSAS-<VERSION>-win-x64-portable.exe directly, with no extraction.
  • Preserve the separate sealed ARSAS-windows-package-input artifact, including build identity JSON/manifest/provenance and the executable used by installer/release CI. No new upload-artifact step, checkouts, workflow files, public releases, auto-publishing, permissions or source/engine changes.
  • Add focused regression test plus docs for the new native artifact contract. Other test/multi-file evidence artifacts remain zipped.

Why this supersedes #676 / #660

Previous FAT prerelease proposals assumed all Actions artifacts had to be ZIP, and #676 modified the installer job and failed a source contract. GitHub's native archive: false is a simpler, safer, much faster operator workflow and avoids the CI-sprawl quota from #660. Old Actions artifacts stay ZIP; only new runs with this code are direct .exe. No changes to stable release tags, landing metadata, app, engine or R7/R10.

Qualification

Run exact-head Build ARSAS (full Windows compile/tests, sealed package/smoke/identity), CI P0 Workflow Integrity and installer end-to-end. Keep PR draft until green. After merge into main, PRs based on that commit gain direct EXE automatically. No direct artifact from this commit is claimed yet.

Copy link
Copy Markdown
Owner Author

D18 supersedence audit of one-click development portable .exe download. This old PR diverges from RC; do NOT claim ancestry or a merge.

  • Current PR HEAD 46b90e9bc51d53008f7ccd1dc4ce0e9272fbc03d compared to protected RC 817c3910e8223fa2ac531a4426ada5d2d4bbbe50: behind=4, ahead=1632, so 4 historic branch commits are not RC ancestors. Audited the PR's actual four changed paths rather than using ancestry as a shortcut. All four paths still exist in RC; tests/ARSAS.Tests/P0ActionsDirectPortableArtifactTests.cs and tests/ARSAS.Tests/WindowsPackagingReproducibilityContractTests.cs are byte-identical Git blobs at PR HEAD and RC; build.yml and WINDOWS_RELEASES.md have evolved.
  • The currently integrated RC .github/workflows/build.yml still contains the canonical sealed Windows package upload, followed by Upload directly downloadable portable EXE (no ZIP) using actions/upload-artifact@v7, one portable EXE path, archive: false, if-no-files-found: error. Original regression checks remain in exact source form and retain distinction between direct EXE convenience and immutable sealed package provenance. No gh release create was introduced by this direct-artifact job; no new stable-release permission implied. This documents the configuration, not a live download/PE integrity demonstration.
  • The separate old #660 manual public prerelease publisher is not equivalent: its .github/workflows/fat-direct-exe.yml is absent from RC, while its verifier/scripts/docs are identical. Only opt-in public prerelease distribution (with exact-SHA gate/human authorization) remains unique and still requires explicit decision/approval. Do not silently deploy it or equate its public release assets with Actions direct EXE.
  • Exact RC Windows run 40165560413 was already GREEN. No CI rerun or physical FAT performed for this metadata cleanup.

Decision: close #677 as an independently obsolete PR because its actual operator convenience behavior and original regression tests are retained on protected integrated RC, not because all old commits merged. Preserve PR discussion and branch; no changes to main, stable v1.6.42, trial engine, #660, protected safety/Write/SG7/UI owners.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant