Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ jobs:
tag: ${{ needs.release-please.outputs.tag_name }}
permissions:
contents: write
issues: write
secrets: inherit

update-latest-tag:
Expand Down
38 changes: 28 additions & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ on:

permissions:
contents: write
issues: write

env:
CARGO_TERM_COLOR: always
Expand Down Expand Up @@ -204,7 +205,7 @@ jobs:
- name: Download checksums
run: |
gh release download "${{ steps.version.outputs.tag }}" \
--repo rtk-ai/rtk \
--repo ${{ github.repository }} \
--pattern checksums.txt
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -227,16 +228,16 @@ jobs:
license "MIT"

if OS.mac? && Hardware::CPU.arm?
url "https://github.com/rtk-ai/rtk/releases/download/TAG_PLACEHOLDER/rtk-aarch64-apple-darwin.tar.gz"
url "https://github.com/REPO_PLACEHOLDER/releases/download/TAG_PLACEHOLDER/rtk-aarch64-apple-darwin.tar.gz"
sha256 "SHA_MAC_ARM_PLACEHOLDER"
elsif OS.mac? && Hardware::CPU.intel?
url "https://github.com/rtk-ai/rtk/releases/download/TAG_PLACEHOLDER/rtk-x86_64-apple-darwin.tar.gz"
url "https://github.com/REPO_PLACEHOLDER/releases/download/TAG_PLACEHOLDER/rtk-x86_64-apple-darwin.tar.gz"
sha256 "SHA_MAC_INTEL_PLACEHOLDER"
elsif OS.linux? && Hardware::CPU.arm?
url "https://github.com/rtk-ai/rtk/releases/download/TAG_PLACEHOLDER/rtk-aarch64-unknown-linux-gnu.tar.gz"
url "https://github.com/REPO_PLACEHOLDER/releases/download/TAG_PLACEHOLDER/rtk-aarch64-unknown-linux-gnu.tar.gz"
sha256 "SHA_LINUX_ARM_PLACEHOLDER"
elsif OS.linux? && Hardware::CPU.intel?
url "https://github.com/rtk-ai/rtk/releases/download/TAG_PLACEHOLDER/rtk-x86_64-unknown-linux-gnu.tar.gz"
url "https://github.com/REPO_PLACEHOLDER/releases/download/TAG_PLACEHOLDER/rtk-x86_64-unknown-linux-gnu.tar.gz"
sha256 "SHA_LINUX_INTEL_PLACEHOLDER"
end

Expand Down Expand Up @@ -268,6 +269,7 @@ jobs:
end
FORMULA
sed -i "s/VERSION_PLACEHOLDER/${{ steps.version.outputs.version }}/g" rtk.rb
sed -i "s|REPO_PLACEHOLDER|${{ github.repository }}|g" rtk.rb
sed -i "s/TAG_PLACEHOLDER/${{ steps.version.outputs.tag }}/g" rtk.rb
sed -i "s/SHA_MAC_ARM_PLACEHOLDER/${{ steps.sha.outputs.mac_arm }}/g" rtk.rb
sed -i "s/SHA_MAC_INTEL_PLACEHOLDER/${{ steps.sha.outputs.mac_intel }}/g" rtk.rb
Expand All @@ -276,19 +278,35 @@ jobs:
# Remove leading spaces from heredoc
sed -i 's/^ //' rtk.rb

- name: Validate formula
run: |
ruby -c rtk.rb
echo "Formula syntax OK"

- name: Push to homebrew-tap
env:
GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
run: |
CONTENT=$(base64 -w 0 rtk.rb)
SHA=$(gh api repos/rtk-ai/homebrew-tap/contents/Formula/rtk.rb --jq '.sha' 2>/dev/null || echo "")
CONTENT=$(cat rtk.rb | base64 | tr -d '\n')
SHA=$(gh api repos/maxkulish/homebrew-tap/contents/Formula/rtk.rb --jq '.sha' 2>/dev/null || echo "")
if [ -n "$SHA" ]; then
gh api -X PUT repos/rtk-ai/homebrew-tap/contents/Formula/rtk.rb \
gh api -X PUT repos/maxkulish/homebrew-tap/contents/Formula/rtk.rb \
-f message="rtk ${{ steps.version.outputs.version }}" \
-f content="$CONTENT" \
-f sha="$SHA"
else
gh api -X PUT repos/rtk-ai/homebrew-tap/contents/Formula/rtk.rb \
gh api -X PUT repos/maxkulish/homebrew-tap/contents/Formula/rtk.rb \
-f message="rtk ${{ steps.version.outputs.version }}" \
-f content="$CONTENT"
fi

- name: Alert on homebrew push failure
if: failure()
run: |
gh issue create \
--repo ${{ github.repository }} \
--title "Homebrew formula push failed for ${{ steps.version.outputs.tag }}" \
--body "The homebrew job failed. Check if HOMEBREW_TAP_TOKEN has expired. Run: gh workflow run release.yml -f tag=${{ steps.version.outputs.tag }}" \
--label "ci"
env:
GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading
Loading