1name: Update Winget Package
 2
 3on:
 4  workflow_dispatch: # allows manual triggering
 5  schedule:
 6    - cron: '28 5 * * *' # Update every day at 5:28 UTC
 7
 8jobs:
 9  update:
10    name: Update Winget Package
11    runs-on: ubuntu-latest
12    if: github.repository_owner == 'ggml-org'
13
14    steps:
15      - name: Install cargo binstall
16        uses: cargo-bins/cargo-binstall@268643a6b5ea099f5718ee5cd3ff7dc89a5eb49b
17
18      - name: Install komac
19        run: |
20          cargo binstall komac@2.11.2 -y
21
22      - name: Find latest release
23        id: find_latest_release
24        uses: actions/github-script@v8
25        with:
26          script: |
27            const { data: releases } = await github.rest.repos.listReleases({
28              owner: context.repo.owner,
29              repo: context.repo.repo,
30            });
31            const { tag_name: version, assets: assets } = releases.find(({assets}) => assets.find(asset => asset.name.includes('win-vulkan')));
32            const { browser_download_url: asset_url } = assets.find(asset => asset.name.includes('win-vulkan'));
33            console.log("Latest release:", version);
34            core.setOutput('VERSION', version);
35            core.setOutput('ASSETURL', asset_url);
36
37      - name: Update manifest
38        run: |
39          echo "Updating manifest..."
40          komac update --version ${{ steps.find_latest_release.outputs.VERSION }} \
41            --urls "${{ steps.find_latest_release.outputs.ASSETURL }}" \
42            --token ${{ secrets.WINGET_GITHUB_TOKEN }} \
43            --submit \
44            ggml.llamacpp