winget.yml 1.6 KB

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