Skip to content

CmdPal0.1.3

CmdPal0.1.3 #7

Workflow file for this run

# To use this template for a new extension:
# 1. Copy this file to a new workflow file (e.g., update-winget.yml)
# 2. Update Environmental variables with your data:
# - GITHUB_REPO with your GitHub repo name
# - GITHUB_REPO with your github user name (e.g., chatasweetie)
# - EXTENSION_NAME with your extension name (e.g., CmdPalMyExtension)
# - YOUR_PACKAGE_IDENTITY_NAME_HERE with the AppxPackageIdentityName located in the <ExtensionName>.csproj
name: Update WinGet - WebSearchShortcut Extension
on:
release:
types: [published]
workflow_dispatch:
inputs:
version:
description: 'Version number (e.g., 0.0.2.0)'
required: false
type: string
release_tag:
description: 'Release tag (e.g., EXTENSION_NAME-v0.0.2.0)'
required: false
type: string
# Global constants: UPDATE THESE, example; EXTENSION_NAME: ${{ vars.EXTENSION_NAME || 'CmdPalMyExtension' }}
env:
EXTENSION_NAME: WebSearchShortcut
GITHUB_USER_NAME: Daydreamer-riri
GITHUB_REPO: CmdPal-WebSearchShortcut
YOUR_PACKAGE_IDENTITY_NAME_HERE: Riri.WebSearchShortcut
jobs:
update-winget:
environment: PT_WINGET
# Only run if this is a matching extension release
if: github.event_name == 'workflow_dispatch' || startsWith(github.event.release.name, 'WebSearchShortcut Extension')
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get release info
id: release
run: |
if ("${{ github.event_name }}" -eq "workflow_dispatch" -and "${{ inputs.version }}" -ne "") {
# Use provided inputs for manual trigger
echo "VERSION=${{ inputs.version }}" >> $env:GITHUB_OUTPUT
echo "TAG=${{ inputs.release_tag }}" >> $env:GITHUB_OUTPUT
} elseif ("${{ github.event_name }}" -eq "release") {
# Extract from release event
$version = "${{ github.event.release.tag_name }}" -replace "${{ env.EXTENSION_NAME }}-v", ""
echo "VERSION=$version" >> $env:GITHUB_OUTPUT
echo "TAG=${{ github.event.release.tag_name }}" >> $env:GITHUB_OUTPUT
} else {
# Get latest release
$latestRelease = gh release list --limit 1 --json tagName,name | ConvertFrom-Json | Where-Object { $_.name -like "${{ env.EXTENSION_NAME }} Extension*" }
$version = $latestRelease.tagName -replace "${{ env.EXTENSION_NAME }}-v", ""
echo "VERSION=$version" >> $env:GITHUB_OUTPUT
echo "TAG=$($latestRelease.tagName)" >> $env:GITHUB_OUTPUT
}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install wingetcreate
run: |
iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
- name: Update WinGet manifest
env:
GITHUB_TOKEN: ${{ secrets.WINGET_CREATE_GITHUB_TOKEN }}
run: |
$version = "${{ steps.release.outputs.VERSION }}"
$tag = "${{ steps.release.outputs.TAG }}"
# URLs for both installers
$x64Url = "https://github.com/${{ env.GITHUB_USER_NAME }}/${{ env.GITHUB_REPO }}/releases/download/$tag/Riri.WebSearchShortcut_${{ steps.release.outputs.VERSION }}_x64.msix"
$arm64Url = "https://github.com/${{ env.GITHUB_USER_NAME }}/${{ env.GITHUB_REPO }}/releases/download/$tag/Riri.WebSearchShortcut_${{ steps.release.outputs.VERSION }}_arm64.msix"
Write-Host "Updating WinGet manifest for version $version"
Write-Host "x64 URL: $x64Url"
Write-Host "ARM64 URL: $arm64Url"
# Update the manifest with both architecture installers
.\wingetcreate.exe update ${{ env.YOUR_PACKAGE_IDENTITY_NAME_HERE }} `
--version $version `
--urls "$x64Url|x64" "$arm64Url|arm64" `
--token $env:GITHUB_TOKEN `
--submit