Skip to content

Add tag-triggered draft releases and native installers - #4

Merged
Bpoe merged 7 commits into
mainfrom
bpoe-tag-triggered-draft-releases
Oct 14, 2026
Merged

Bpoe merged 7 commits into
mainfrom
bpoe-tag-triggered-draft-releases

Conversation

@Bpoe

@Bpoe Bpoe commented Oct 13, 2026

Copy link
Copy Markdown
Owner

dscpkg currently provides CI executables but has no tag-driven release process. This adds a draft-only release flow modeled on dsc-reconciler, with ready-to-install packages and manual publication after review.

Approach

  • Accept stable vX.Y.Z tags on commits already in main, resolve the exact tagged commit, and refuse to overwrite existing releases or drafts. Recheck the remote tag before creating the draft.
  • Reuse native CI to build Linux, Windows, and macOS archives, Windows MSI, and Linux DEB/RPM packages. Inspect and test the payloads before uploading them, then assemble the draft from those same artifacts with generated notes and SHA256SUMS.
  • Install machine-wide, manage the Windows system PATH entry, and preserve downloaded resource packages, registries, and caches through upgrades and uninstall. No services or DSC runtime are bundled.
  • Keep publication manual, serialize releases per tag, and grant write permission only to the draft-creation job. Document installation, local packaging, tagging, and failure recovery.

Important details

MSI versions map directly to X.Y.Z: major/minor are limited to 255 and patch to 65535. These limits apply to the entire release; prerelease tags are unsupported. macOS remains archive-only, and distribution packages are unsigned. The pinned WiX 7 build tool's licensing/EULA requirements are documented.

Validation

  • Hosted CI passed on Linux, Windows, and macOS, including existing Go checks, workflow/script lint, release-guard regression tests, and package inspection.
  • Disposable Windows, Ubuntu, and Fedora environments exercised installer lifecycles and data retention. Windows additionally checked repair, PATH handling, and downgrade rejection; isolated fixtures verified upgrade replacement.
  • Verified final draft assembly using the actual uploaded CI artifacts with GitHub writes mocked. No release tag was pushed or GitHub release created.

Brandon Poe added 7 commits October 13, 2026 16:00
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: afbfb6ff-84bc-42ed-854f-36575fcd2c3a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: afbfb6ff-84bc-42ed-854f-36575fcd2c3a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: afbfb6ff-84bc-42ed-854f-36575fcd2c3a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: afbfb6ff-84bc-42ed-854f-36575fcd2c3a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: afbfb6ff-84bc-42ed-854f-36575fcd2c3a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: afbfb6ff-84bc-42ed-854f-36575fcd2c3a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: afbfb6ff-84bc-42ed-854f-36575fcd2c3a
@Bpoe
Bpoe merged commit 9610dda into main Oct 14, 2026
6 checks passed
@Bpoe
Bpoe deleted the bpoe-tag-triggered-draft-releases branch October 14, 2026 18:19
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