ci: automatically upload published clients to winget (#9213)

This utilizes the https://github.com/vedantmgoyal9/winget-releaser
action to automatically submit a PR to the winget repository every time
we publish a new version of the GUI / Headless Client.

The bot uses the initial manifest added in
https://github.com/microsoft/winget-pkgs/pull/259366 and updates the
installer link and hash.

Resolves: #4729
This commit is contained in:
Thomas Eizinger
2025-05-27 08:52:10 +10:00
committed by GitHub
parent 4c04c69ec0
commit d25e378b5e
3 changed files with 43 additions and 0 deletions

31
.github/workflows/publish-to-winget.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Publish to WinGet
on:
release:
types:
- published
jobs:
publish_clients:
name: Publish ${{ matrix.identifier }} to winget
runs-on: windows-latest
strategy:
matrix:
include:
- identifier: Firezone.Client.GUI
tag_prefix: gui-client
- identifier: Firezone.Client.Headless
tag_prefix: headless-client
if: ${{ startsWith(github.event.release.name, matrix.tag_prefix) }}
steps:
- id: get-version
run: |
version=${{ github.event.release.name }}
version=${version#${{ matrix.tag_prefix }}-}
echo "version=$version" >> $GITHUB_OUTPUT
shell: bash
- uses: vedantmgoyal9/winget-releaser@3e78d7ff0f525445bca5d6a989d31cdca383372e # main
with:
identifier: ${{ matrix.identifier }}
version: ${{ steps.get-version.outputs.version }}
token: ${{ secrets.WINGET_TOKEN }}
release-notes-url: https://firezone.dev/changelog

View File

@@ -40,6 +40,12 @@ export default function GUI({ os }: { os: OS }) {
Increases minimum supported CentOS version to 10.
</ChangeItem>
)}
{os === OS.Windows && (
<ChangeItem pull="9213">
Adds the Client to the winget repository. You can install it via
`winget install Firezone.Client.GUI`.
</ChangeItem>
)}
</Entry>
<Entry version="1.4.13" date={new Date("2025-05-14")}>
<ChangeItem pull="9014">

View File

@@ -29,6 +29,12 @@ export default function Headless({ os }: { os: OS }) {
Optimizes network change detection.
</ChangeItem>
)}
{os === OS.Windows && (
<ChangeItem pull="9213">
Adds the Client to the winget repository. You can install it via
`winget install Firezone.Client.Headless`.
</ChangeItem>
)}
</Entry>
<Entry version="1.4.7" date={new Date("2025-04-30")}>
<ChangeItem pull="8798">