From 322779ee8876515f83d78598e0191e02f7ed6762 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 11 Oct 2022 20:16:24 +0200 Subject: [PATCH] Refactor winget release to own workflow file (#2471) ... and call it on release windows build Co-authored-by: Sebastian Stenzel --- .github/workflows/win-exe.yml | 23 +++++----------- .github/workflows/winget.yml | 49 +++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/winget.yml diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 91d967bf7..eabf98b86 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -8,11 +8,6 @@ on: version: description: 'Version' required: false - winget-release: - description: 'Release artifacts to winget' - required: true - type: boolean - default: false env: JAVA_VERSION: 17 @@ -194,19 +189,13 @@ jobs: semVerStr: ${{ steps.versions.outputs.semVerStr }} revNum: ${{ steps.versions.outputs.revNum }} - publish-winget: - name: Publish on winget repo - runs-on: windows-latest + call-winget-flow: needs: [build-msi] - if: github.event.action == 'published' || inputs.winget-release - 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 '^Cryptomator-.*\.msi' | Select -ExpandProperty browser_download_url -First 1 - .\wingetcreate.exe update Cryptomator.Cryptomator -s -v $github.release.tag_name -u $installerUrl -t ${{ secrets.CRYPTOBOT_WINGET_TOKEN }} - shell: pwsh + if: github.event.action == 'published' + uses: ./.github/workflows/winget.yml + with: + releaseTag: ${{ github.event.release.tag_name }} + build-exe: name: Build .exe installer diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml new file mode 100644 index 000000000..7115a1785 --- /dev/null +++ b/.github/workflows/winget.yml @@ -0,0 +1,49 @@ +name: Release to Winget + +on: + workflow_call: + inputs: + releaseTag: + required: true + type: string + workflow_dispatch: + inputs: + releaseTag: + description: 'Release tag name' + required: true + type: string + +jobs: + publish-winget: + name: Publish on winget repo + runs-on: windows-latest + steps: + - name: Get download url for msi artifacts + id: get-release-assets + uses: actions/github-script@v6 + with: + script: | + const query =`query($tag:String!) { + repository(owner:"cryptomator", name:"cryptomator"){ + release(tagName: $tag) { + releaseAssets(first:20) { + nodes { + name + downloadUrl + } + } + } + } + }`; + const variables = { + tag: "${{ inputs.releaseTag }}" + } + return await github.graphql(query, variables) + - name: Submit package to Windows Package Manager Community Repository + id: submit-winget + run: | + iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe + $releaseAssets = (ConvertFrom-Json '${{ steps.get-release-assets.outputs.result }}').repository.release.releaseAssets.nodes + $installerUrl = $releaseAssets | Where-Object -Property name -match '^Cryptomator-.*\.msi$' | Select -ExpandProperty downloadUrl -First 1 + .\wingetcreate.exe update Cryptomator.Cryptomator -s -v "${{ inputs.releaseTag }}" -u "$installerUrl" -t ${{ secrets.CRYPTOBOT_WINGET_TOKEN }} + shell: pwsh