Skip to content

Prepare Homebrew stub for 1.2.0 release #8

Prepare Homebrew stub for 1.2.0 release

Prepare Homebrew stub for 1.2.0 release #8

name: update-homebrew-tap
on:
workflow_dispatch:
inputs:
version:
description: "Version without leading v"
required: true
default: "1.0.0"
sha256:
description: "SHA256 for mtop source tarball"
required: true
permissions:
contents: read
jobs:
sync-tap:
runs-on: macos-14
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Resolve Version
id: version
run: |
echo "value=${{ github.event.inputs.version }}" >> "$GITHUB_OUTPUT"
- name: Resolve SHA256
id: sha
run: |
echo "value=${{ github.event.inputs.sha256 }}" >> "$GITHUB_OUTPUT"
- name: Start SSH Agent
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.HOMEBREW_TAP_SSH_KEY }}
- name: Trust GitHub Host Key
run: |
mkdir -p ~/.ssh
ssh-keyscan github.com >> ~/.ssh/known_hosts
- name: Clone Homebrew Tap
run: git clone git@github.com:lxrzlyr/homebrew-mtop.git /tmp/homebrew-mtop
- name: Generate Formula
run: |
./scripts/generate_homebrew_formula.sh \
"${{ steps.version.outputs.value }}" \
"${{ steps.sha.outputs.value }}" \
/tmp/homebrew-mtop/Formula/mtop.rb
- name: Commit And Push
run: |
cd /tmp/homebrew-mtop
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add Formula/mtop.rb
if git diff --cached --quiet; then
echo "No tap changes to commit"
exit 0
fi
git commit -m "Update mtop formula to v${{ steps.version.outputs.value }}"
git push origin main
- name: Verify Tap Update
run: |
rm -rf /tmp/homebrew-mtop-verify
git clone git@github.com:lxrzlyr/homebrew-mtop.git /tmp/homebrew-mtop-verify
EXPECTED_VERSION="${{ steps.version.outputs.value }}"
ACTUAL_VERSION=$(python3 - <<'PY'
from pathlib import Path

Check failure on line 73 in .github/workflows/update-homebrew-tap.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/update-homebrew-tap.yml

Invalid workflow file

You have an error in your yaml syntax on line 73
import re
text = Path('/tmp/homebrew-mtop-verify/Formula/mtop.rb').read_text()
match = re.search(r'/releases/download/v([^/]+)/mtop-([^/]+)-source\.tar\.gz', text)
print(match.group(1) if match else '')
PY
)
if [[ "$ACTUAL_VERSION" != "$EXPECTED_VERSION" ]]; then
echo "Tap verification failed: expected v${EXPECTED_VERSION}, got v${ACTUAL_VERSION}" >&2
exit 1
fi