Repository navigation
Auto-update MSIX installs from GitHub Releases via App Installer feeds - #66
Merged
Marc-André Moreau (mamoreau-devolutions) merged 1 commit intoNov 12, 2026
Conversation
Generate per-architecture .appinstaller feeds served from the stable releases/latest/download URL, embed them as Update.appinstaller with uap13:AutoUpdate, validate them in Test-Packages.ps1, and enable them for release builds. Inspired by dotMorten/GitHubToDo. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Marc-André Moreau (mamoreau-devolutions)
requested a review
from a team
as a code owner
November 12, 2026 01:43
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 01:48 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 01:48 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 01:48 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 01:48 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
merged commit Nov 12, 2026
7cf8734
into
master
54 checks passed
Marc-André Moreau (mamoreau-devolutions)
deleted the
copilot/msix-auto-update-github
branch
November 12, 2026 14:51
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adopts the approach from dotMorten/GitHubToDo: publish an App Installer feed at GitHub's stable
releases/latest/download/URL so installed MSIX packages update themselves from new GitHub Releases.Changes
New-AppInstaller.ps1(new): generates a per-architecture feed (Devolutions.Terminal_<arch>.appinstaller). The feed URI isreleases/latest/download/...;MainPackagepoints to the immutable MSIX for the release tag. Checks run on launch (non-blocking, no prompt) and through the background task.Build-Packages.ps1: new-UpdateRepository/-ReleaseTagparameters. When set, it writes the feeds next to the MSIX files, embeds each feed asUpdate.appinstaller, and adds auap13:AutoUpdatereference.uap13is ignorable, so older Windows versions skip it.Test-Packages.ps1:-UpdateRepositoryvalidates that the embedded feed matches the package's identity, architecture, file name, and stable URI, and that it is hash-identical to the published feed. Without the parameter, it asserts that no feed is embedded.Test-PackageBuild.ps1: adds an AutoUpdate case plus negative tests (missing feed, wrong repo, unexpected feed, divergent published feed, missing tag).UpdateRepository=$GITHUB_REPOSITORY. The feeds flow into the existing release assets.docs/release.md"MSIX automatic updates", package README.Per-architecture feeds are used because this repo ships separate x64/arm64 MSIX files, not a bundle.
Testing
Test-PackageBuild.ps1passes locally, including the new AutoUpdate and failure cases. makeappx accepts the uap13 manifest.Follow-up (not included)
Package.CheckUpdateAvailabilityAsync), as GitHubToDo does.