Skip to content

ci: add Winget automation to release workflow#12

Merged
FelipeMorandini merged 2 commits intomainfrom
chore/winget-automation
Mar 18, 2026
Merged

ci: add Winget automation to release workflow#12
FelipeMorandini merged 2 commits intomainfrom
chore/winget-automation

Conversation

@FelipeMorandini
Copy link
Owner

Summary

  • Add update-winget job to release.yml using wingetcreate to auto-submit manifest updates to microsoft/winget-pkgs
  • Update Winget manifests with real SHA256 hashes for v1.1.1
  • Update ROADMAP: all distribution channels now complete

Initial winget-pkgs PR: microsoft/winget-pkgs#349834

Test plan

  • YAML syntax valid
  • CI passes
  • Winget manifests have correct SHA256 hashes and version

Add update-winget job to release.yml that uses wingetcreate to
automatically submit manifest updates to microsoft/winget-pkgs on
each release.

Update Winget manifests with real SHA256 hashes for v1.1.1 release
assets. Update ROADMAP to mark all distribution channels complete.
@FelipeMorandini FelipeMorandini requested a review from Copilot March 18, 2026 20:26
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends the release workflow to automatically update and submit WinGet manifests to microsoft/winget-pkgs, and updates the repository’s WinGet manifest templates/hashes and roadmap status to reflect completed distribution automation.

Changes:

  • Add an update-winget job to .github/workflows/release.yml that runs wingetcreate update ... --submit.
  • Update WinGet manifest templates to PackageVersion: 1.1.1 and set real SHA256 values for Windows installer ZIPs.
  • Update ROADMAP.md to mark WinGet as DONE and remove remaining-work items.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packaging/winget/FelipeMorandini.jwt-term.yaml Bumps WinGet manifest package version to 1.1.1.
packaging/winget/FelipeMorandini.jwt-term.locale.en-US.yaml Bumps WinGet locale manifest package version to 1.1.1.
packaging/winget/FelipeMorandini.jwt-term.installer.yaml Updates installer URLs to v1.1.1 and replaces placeholder SHA256 with real hashes.
ROADMAP.md Marks WinGet channel as complete and updates distribution status/remaining work.
.github/workflows/release.yml Adds update-winget automation job using wingetcreate during releases.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +324 to +332
run: |
$version = "${{ github.ref_name }}".TrimStart("v")
$x64Url = "https://github.com/felipemorandini/jwt-term/releases/download/${{ github.ref_name }}/jwt-term-x86_64-pc-windows-msvc.zip"
$arm64Url = "https://github.com/felipemorandini/jwt-term/releases/download/${{ github.ref_name }}/jwt-term-aarch64-pc-windows-msvc.zip"
.\wingetcreate.exe update FelipeMorandini.jwt-term `
--version $version `
--urls $x64Url $arm64Url `
--submit `
--token ${{ secrets.WINGET_PAT }}
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in c922120 — PAT is now passed via $env:WINGET_PAT environment variable instead of inline command argument.

Comment on lines +317 to +321
- name: Install wingetcreate
shell: pwsh
run: |
Invoke-WebRequest -Uri "https://aka.ms/wingetcreate/latest" -OutFile wingetcreate.exe

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acknowledged. Using https://aka.ms/wingetcreate/latest/self-contained is the recommended pattern from Microsoft's wingetcreate documentation. Pinning to a specific version would require manual maintenance. The risk is acceptable for a CI job that only submits manifest PRs (no write access to our repo).

update-winget:
name: Update Winget manifest
needs: release
runs-on: windows-latest
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. The contents: write is set at workflow level for the release job. This job only needs public_repo on the PAT (which is separate from GITHUB_TOKEN permissions). The inherited permission is unused but harmless since the job only runs wingetcreate against an external repo.

@FelipeMorandini FelipeMorandini merged commit ce8e913 into main Mar 18, 2026
8 checks passed
@FelipeMorandini FelipeMorandini deleted the chore/winget-automation branch March 18, 2026 20:34
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.

2 participants