winget.yml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. name: Release to Winget
  2. on:
  3. workflow_call:
  4. inputs:
  5. releaseTag:
  6. required: true
  7. type: string
  8. workflow_dispatch:
  9. inputs:
  10. releaseTag:
  11. description: 'Release tag name'
  12. required: true
  13. type: string
  14. jobs:
  15. publish-winget:
  16. name: Publish on winget repo
  17. runs-on: windows-latest
  18. steps:
  19. - name: Get download url for msi artifacts
  20. id: get-release-assets
  21. uses: actions/github-script@v6
  22. with:
  23. script: |
  24. const query =`query($tag:String!) {
  25. repository(owner:"cryptomator", name:"cryptomator"){
  26. release(tagName: $tag) {
  27. releaseAssets(first:20) {
  28. nodes {
  29. name
  30. downloadUrl
  31. }
  32. }
  33. }
  34. }
  35. }`;
  36. const variables = {
  37. tag: "${{ inputs.releaseTag }}"
  38. }
  39. return await github.graphql(query, variables)
  40. - name: Submit package to Windows Package Manager Community Repository
  41. id: submit-winget
  42. run: |
  43. iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
  44. $releaseAssets = (ConvertFrom-Json '${{ steps.get-release-assets.outputs.result }}').repository.release.releaseAssets.nodes
  45. $installerUrl = $releaseAssets | Where-Object -Property name -match '^Cryptomator-.*\.msi$' | Select -ExpandProperty downloadUrl -First 1
  46. .\wingetcreate.exe update Cryptomator.Cryptomator -s -v "${{ inputs.releaseTag }}" -u "$installerUrl" -t ${{ secrets.CRYPTOBOT_WINGET_TOKEN }}
  47. shell: pwsh