From 2d21949230f2f441dd6d9ce6e6d54642e40ca95c Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 24 Jan 2025 15:14:19 +0100 Subject: [PATCH 1/8] Rewrite WinGet workflow to use Komac directly --- .github/workflows/publish-winget.yml | 60 ++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish-winget.yml b/.github/workflows/publish-winget.yml index eb9a72eda4..7776cd3bfb 100644 --- a/.github/workflows/publish-winget.yml +++ b/.github/workflows/publish-winget.yml @@ -10,19 +10,55 @@ on: jobs: publish-to-winget-pkgs: runs-on: - group: databricks-protected-runner-group - labels: windows-server-latest + group: databricks-deco-testing-runner-group + labels: ubuntu-latest-deco environment: release steps: - - uses: vedantmgoyal2009/winget-releaser@93fd8b606a1672ec3e5c6c3bb19426be68d1a8b0 # v2 - with: - identifier: Databricks.DatabricksCLI - installers-regex: 'windows_.*-signed\.zip$' # Only signed Windows releases - token: ${{ secrets.ENG_DEV_ECOSYSTEM_BOT_TOKEN }} - fork-user: eng-dev-ecosystem-bot - - # Use the tag from the input, or the ref name if the input is not provided. - # The ref name is equal to the tag name when this workflow is triggered by the "sign-cli" command. - release-tag: ${{ inputs.tag || github.ref_name }} + - name: Checkout repository and submodules + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + # When updating the version of komac, make sure to update the checksum in the next step. + # Find both at https://github.com/russellbanks/Komac/releases. + - name: Download komac binary + run: | + curl -L -o $RUNNER_TEMP/komac-2.9.0-x86_64-unknown-linux-gnu.tar.gz https://github.com/russellbanks/Komac/releases/download/v2.9.0/komac-2.9.0-x86_64-unknown-linux-gnu.tar.gz + + - name: Verify komac binary + run: | + echo "d07a12831ad5418fee715488542a98ce3c0e591d05c850dd149fe78432be8c4c $RUNNER_TEMP/komac-2.9.0-x86_64-unknown-linux-gnu.tar.gz" | sha256sum -c - + + - name: Untar komac binary to temporary path + run: | + mkdir -p $RUNNER_TEMP/komac + tar -xzf $RUNNER_TEMP/komac-2.9.0-x86_64-unknown-linux-gnu.tar.gz -C $RUNNER_TEMP/komac + + - name: Add komac to PATH + run: echo "$RUNNER_TEMP/komac" >> $GITHUB_PATH + + - name: Strip "v" prefix from version + id: strip_version + run: echo "version=${{ inputs.tag || github.ref_name }}" | sed 's/^v//' >> "$GITHUB_OUTPUT" + + - name: Get URLs of signed Windows binaries + id: get_windows_urls + run: | + urls=$( + gh api https://api.github.com/repos/databricks/cli/releases/tags/${{ inputs.tag || github.ref_name }} | \ + jq -r .assets[].browser_download_url | \ + grep -E '_windows_.*-signed\.zip$' + ) + echo "urls=$urls" >> "$GITHUB_OUTPUT" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Publish to Winget + run: | + komac update Databricks.DatabricksCLI \ + --version ${{ steps.strip_version.outputs.version }} \ + --urls ${{ steps.get_windows_urls.outputs.urls }} \ + --dry-run + env: + KOMAC_FORK_OWNER: eng-dev-ecosystem-bot + GITHUB_TOKEN: ${{ secrets.ENG_DEV_ECOSYSTEM_BOT_TOKEN }} From 3940008fd4019c8302b708a7db295fa6bf733e00 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 24 Jan 2025 15:17:29 +0100 Subject: [PATCH 2/8] Fixes --- .github/workflows/publish-winget.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-winget.yml b/.github/workflows/publish-winget.yml index 7776cd3bfb..f693c63900 100644 --- a/.github/workflows/publish-winget.yml +++ b/.github/workflows/publish-winget.yml @@ -23,7 +23,7 @@ jobs: # Find both at https://github.com/russellbanks/Komac/releases. - name: Download komac binary run: | - curl -L -o $RUNNER_TEMP/komac-2.9.0-x86_64-unknown-linux-gnu.tar.gz https://github.com/russellbanks/Komac/releases/download/v2.9.0/komac-2.9.0-x86_64-unknown-linux-gnu.tar.gz + curl -s -L -o $RUNNER_TEMP/komac-2.9.0-x86_64-unknown-linux-gnu.tar.gz https://github.com/russellbanks/Komac/releases/download/v2.9.0/komac-2.9.0-x86_64-unknown-linux-gnu.tar.gz - name: Verify komac binary run: | @@ -37,6 +37,9 @@ jobs: - name: Add komac to PATH run: echo "$RUNNER_TEMP/komac" >> $GITHUB_PATH + - name: Confirm komac version + run: komac --version + - name: Strip "v" prefix from version id: strip_version run: echo "version=${{ inputs.tag || github.ref_name }}" | sed 's/^v//' >> "$GITHUB_OUTPUT" @@ -47,7 +50,8 @@ jobs: urls=$( gh api https://api.github.com/repos/databricks/cli/releases/tags/${{ inputs.tag || github.ref_name }} | \ jq -r .assets[].browser_download_url | \ - grep -E '_windows_.*-signed\.zip$' + grep -E '_windows_.*-signed\.zip$' | \ + tr '\n' ' ' ) echo "urls=$urls" >> "$GITHUB_OUTPUT" env: From 479322324fcbe974f53e72342fdc2e0feadf92e4 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 24 Jan 2025 15:20:29 +0100 Subject: [PATCH 3/8] Fixes --- .github/workflows/publish-winget.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-winget.yml b/.github/workflows/publish-winget.yml index f693c63900..f3a8d05b0b 100644 --- a/.github/workflows/publish-winget.yml +++ b/.github/workflows/publish-winget.yml @@ -42,7 +42,7 @@ jobs: - name: Strip "v" prefix from version id: strip_version - run: echo "version=${{ inputs.tag || github.ref_name }}" | sed 's/^v//' >> "$GITHUB_OUTPUT" + run: echo "version=$(echo ${{ inputs.tag || github.ref_name }} | sed 's/^v//')" >> "$GITHUB_OUTPUT" - name: Get URLs of signed Windows binaries id: get_windows_urls From 079e5c11d3ed80ee7c7244761e5d48450079c8ad Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 24 Jan 2025 15:22:00 +0100 Subject: [PATCH 4/8] Include submit --- .github/workflows/publish-winget.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-winget.yml b/.github/workflows/publish-winget.yml index f3a8d05b0b..471eb74b7f 100644 --- a/.github/workflows/publish-winget.yml +++ b/.github/workflows/publish-winget.yml @@ -60,9 +60,10 @@ jobs: - name: Publish to Winget run: | komac update Databricks.DatabricksCLI \ + --dry-run --version ${{ steps.strip_version.outputs.version }} \ + --submit \ --urls ${{ steps.get_windows_urls.outputs.urls }} \ - --dry-run env: KOMAC_FORK_OWNER: eng-dev-ecosystem-bot GITHUB_TOKEN: ${{ secrets.ENG_DEV_ECOSYSTEM_BOT_TOKEN }} From ba2a6c0801e7ae1946cd14acba28187a538a2ae2 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 24 Jan 2025 15:23:33 +0100 Subject: [PATCH 5/8] Fixes --- .github/workflows/publish-winget.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-winget.yml b/.github/workflows/publish-winget.yml index 471eb74b7f..1202e2bd6d 100644 --- a/.github/workflows/publish-winget.yml +++ b/.github/workflows/publish-winget.yml @@ -60,7 +60,7 @@ jobs: - name: Publish to Winget run: | komac update Databricks.DatabricksCLI \ - --dry-run + --dry-run \ --version ${{ steps.strip_version.outputs.version }} \ --submit \ --urls ${{ steps.get_windows_urls.outputs.urls }} \ From 890dfd62f38ea99256d27bf4c6b89bbf88de9cc4 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 24 Jan 2025 15:24:53 +0100 Subject: [PATCH 6/8] Without --dry-run --- .github/workflows/publish-winget.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish-winget.yml b/.github/workflows/publish-winget.yml index 1202e2bd6d..282ce47556 100644 --- a/.github/workflows/publish-winget.yml +++ b/.github/workflows/publish-winget.yml @@ -60,7 +60,6 @@ jobs: - name: Publish to Winget run: | komac update Databricks.DatabricksCLI \ - --dry-run \ --version ${{ steps.strip_version.outputs.version }} \ --submit \ --urls ${{ steps.get_windows_urls.outputs.urls }} \ From 2fec0fc8e479481919bb712551e6171025e90c3b Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 24 Jan 2025 15:25:42 +0100 Subject: [PATCH 7/8] Include error check for binaries --- .github/workflows/publish-winget.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/publish-winget.yml b/.github/workflows/publish-winget.yml index 282ce47556..f83ab51ab8 100644 --- a/.github/workflows/publish-winget.yml +++ b/.github/workflows/publish-winget.yml @@ -53,6 +53,10 @@ jobs: grep -E '_windows_.*-signed\.zip$' | \ tr '\n' ' ' ) + if [ -z "$urls" ]; then + echo "No signed Windows binaries found" >&2 + exit 1 + fi echo "urls=$urls" >> "$GITHUB_OUTPUT" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From ffc237a4df90638a3c2d26d417b613ddb233a891 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 24 Jan 2025 15:35:58 +0100 Subject: [PATCH 8/8] Keep comment --- .github/workflows/publish-winget.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish-winget.yml b/.github/workflows/publish-winget.yml index f83ab51ab8..cbd24856bf 100644 --- a/.github/workflows/publish-winget.yml +++ b/.github/workflows/publish-winget.yml @@ -40,6 +40,8 @@ jobs: - name: Confirm komac version run: komac --version + # Use the tag from the input, or the ref name if the input is not provided. + # The ref name is equal to the tag name when this workflow is triggered by the "sign-cli" command. - name: Strip "v" prefix from version id: strip_version run: echo "version=$(echo ${{ inputs.tag || github.ref_name }} | sed 's/^v//')" >> "$GITHUB_OUTPUT"