diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml new file mode 100644 index 0000000..500cbac --- /dev/null +++ b/.github/workflows/winget.yml @@ -0,0 +1,34 @@ +name: Publish to WinGet + +# Submits the signed MSI from a GitHub Release to microsoft/winget-pkgs. +# - `release` event fires automatically when CI / Release publishes the GitHub Release. +# - `workflow_dispatch` lets us re-publish a past version (used for the very first +# submission once this workflow exists on main). +# +# Requires repo secret WINGET_TOKEN: a classic PAT with `public_repo` scope. +# (winget-releaser does not yet support fine-grained tokens.) + +on: + release: + types: [released] + workflow_dispatch: + inputs: + tag: + description: 'Release tag to publish (e.g. v0.4.0)' + required: true + type: string + +permissions: + contents: read + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Submit to winget-pkgs + uses: vedantmgoyal9/winget-releaser@v2 + with: + identifier: UmageAI.CodeShellManager + installers-regex: '\.msi$' + release-tag: ${{ inputs.tag || github.event.release.tag_name }} + token: ${{ secrets.WINGET_TOKEN }} diff --git a/CLAUDE.md b/CLAUDE.md index b78d668..e76b6ce 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -236,6 +236,8 @@ git push origin v1.2.3 The tag value overrides the csproj `` at publish time (`-p:Version=` flag). **Do not rely on the csproj version number** — bump it for local build clarity only. CI produces a signed exe, MSI installer, and portable ZIP, then creates a GitHub Release automatically. +A second workflow, `.github/workflows/winget.yml`, fires on the `release: released` event and submits the signed MSI to microsoft/winget-pkgs as `UmageAI.CodeShellManager` via [vedantmgoyal9/winget-releaser](https://github.com/vedantmgoyal9/winget-releaser). It needs the repo secret `WINGET_TOKEN` (classic PAT, `public_repo` scope). The same workflow is `workflow_dispatch`-able with a `tag` input to backfill or retry a release. + ## Known Conventions - All WPF color literals use Catppuccin Mocha hex values — do not introduce system colors