GitHubアクションでWinget上でパッケージを自動的にアップグレードする
5023 ワード
マイワークフロー
Windowsでプロジェクトを配布したいオープンソースメンテナなら、Windowsパッケージマネージャの別名Winget上で公開したいと思います.これは、パッケージマニフェストを作成し、Windowsパッケージマネージャコミュニティリポジトリに提出することによって行うことができますdocumentation ).
あなたがアプリケーション/パッケージの各バージョンのためにそれをする必要があるので、それはすぐに退屈になることができます.幸いにも、Windowsパッケージマネージャマニフェストクリエーター別名Wingetと呼ばれるツールがあります.そういうわけで、私はアプリケーションの新しいバージョンがリリースされるたびに、アプリケーションマニフェストのアップグレードを自動化するワークフローを作成することに決めました.
提出カテゴリ
DIY展開
YAMLファイルまたはコードへのリンク
TechWatching / winget-package-submission
Wingetパッケージのアップグレードを自動化するワークフローが含まれます.
Wingetパッケージの提出
このリポジトリにはWingetパッケージのアップグレードを自動化するワークフローが含まれます
あなたは、これの詳細情報を見つけることができますarticle .
このワークフローの使用
このワークフローを使用するには、
.github/workflows/winget-submission.yml
githubリポジトリ内のファイルpublic_repo
そして、名前であなたのプロジェクトの秘密にそれを加えてくださいProject_PAT
packageFileName
プロジェクトのGithubリリースのパッケージのファイル名を指定しますpackageId
パッケージの識別子をWindowsのパッケージマネージャでこのワークフローはWindows Package Manager Manifest Creator パッケージマニフェストの新しいバージョンを更新して送信するには
ワークフロートリガ
ワークフローは、リリースが発行されるたびにトリガされます.その背後にあるアイデアはパッケージの新しいバージョンのときに新しいパッケージを提出することです.
View on GitHub
name: Submit Nushell package to Windows Package Manager Community Repository
on:
release:
types: [published]
env:
packageFileName: windows.msi
packageId: MyPackageIdInWinget
jobs:
winget:
name: Publish winget package
runs-on: windows-latest
steps:
- name: Submit package to Windows Package Manager Community Repository
run: |
iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
$github = Get-Content '${{ github.event_path }}' | ConvertFrom-Json
$installerUrl = $github.release.assets | Where-Object -Property name -match ${env:packageFileName} | Select -ExpandProperty browser_download_url -First 1
.\wingetcreate.exe update ${env:packageId} -s -v $github.release.tag_name -u $installerUrl -t ${{ secrets.Project_PAT }}
追加情報
このワークフローに関する詳しい情報は、プロジェクトのREADMEにあります.
私がビルドしたこのワークフローは、現在オープンソースプロジェクトで使用されていますNushell (githubの16 , 4 k星)最新のワークフローの実行を確認できますhere NuShellの新しいバージョンがリリースされるたびに、新しいパッケージマニフェストはWindowsパッケージマネージャーコミュニティリポジトリに提出されます.
このワークフローがどのように動作するかについての詳細を知りたい場合は、NuShellやツールWingetで使用される方法でこのワークフローを使用してくださいhere .
Wingetを通してそのパッケージを配布したい(そして自動化したい)他のプロジェクトは、このワークフローを使用することを歓迎します.お気軽にプロジェクトのニーズを満たすためにそれを変更する.
Reference
この問題について(GitHubアクションでWinget上でパッケージを自動的にアップグレードする), 我々は、より多くの情報をここで見つけました https://dev.to/techwatching/automatically-upgrade-your-package-on-winget-with-github-actions-2hgpテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol