Skip to content

formula-update

formula-update #28

name: Update Homebrew Formula
on:
repository_dispatch:
types: [formula-update]
jobs:
update-formula:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Update formula from template
run: |
# Extract data from the dispatch payload
VERSION="${{ github.event.client_payload.release.version }}"
DARWIN_ARM64_SHA="${{ github.event.client_payload.checksums.darwin_arm64 }}"
DARWIN_X86_64_SHA="${{ github.event.client_payload.checksums.darwin_x86_64 }}"
LINUX_X86_64_SHA="${{ github.event.client_payload.checksums.linux_x86_64 }}"
LINUX_ARM64_SHA="${{ github.event.client_payload.checksums.linux_arm64 }}"
# Remove 'v' prefix if present
CLEAN_VERSION="${VERSION#v}"
echo "Updating formula to version: $CLEAN_VERSION"
echo "Darwin ARM64 SHA: $DARWIN_ARM64_SHA"
echo "Darwin x86_64 SHA: $DARWIN_X86_64_SHA"
echo "Linux x86_64 SHA: $LINUX_X86_64_SHA"
echo "Linux ARM64 SHA: $LINUX_ARM64_SHA"
# Generate the formula from template
cp Formula/apm.rb.template Formula/apm.rb
# Replace template placeholders with actual values
sed -i "s/{{VERSION}}/$CLEAN_VERSION/g" Formula/apm.rb
sed -i "s/{{DARWIN_ARM64_SHA}}/$DARWIN_ARM64_SHA/g" Formula/apm.rb
sed -i "s/{{DARWIN_X86_64_SHA}}/$DARWIN_X86_64_SHA/g" Formula/apm.rb
sed -i "s/{{LINUX_X86_64_SHA}}/$LINUX_X86_64_SHA/g" Formula/apm.rb
sed -i "s/{{LINUX_ARM64_SHA}}/$LINUX_ARM64_SHA/g" Formula/apm.rb
echo "✅ Formula updated successfully"
- name: Create pull request
env:
GH_TOKEN: ${{ secrets.CREATE_PR_PAT }}
run: |
VERSION="${{ github.event.client_payload.release.version }}"
CLEAN_VERSION="${VERSION#v}"
BRANCH="formula/v${CLEAN_VERSION}"
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add Formula/apm.rb
if git diff --staged --quiet; then
echo "No changes to commit"
exit 0
fi
git checkout -b "$BRANCH"
git commit -m "Update APM formula to v${CLEAN_VERSION}"
git push origin "$BRANCH"
gh pr create \
--title "Update APM formula to v${CLEAN_VERSION}" \
--body "Automated formula update triggered by APM release v${CLEAN_VERSION}." \
--base main \
--head "$BRANCH"
echo "✅ Pull request created for formula update"