Skip to content

Fix workflow YAML heredoc indentation #23

Fix workflow YAML heredoc indentation

Fix workflow YAML heredoc indentation #23

Workflow file for this run

name: build-release
on:
push:
branches:
- main
- master
tags:
- "v*"
pull_request:
workflow_dispatch:
permissions:
contents: write
jobs:
package-macos:
runs-on: macos-14
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure
run: cmake -S . -B build
- name: Build
run: cmake --build build -j4
- name: Test
run: ctest --test-dir build --output-on-failure
- name: Install Staging
run: cmake --install build --prefix "$GITHUB_WORKSPACE/dist/install"
- name: Package
run: cpack --config build/CPackConfig.cmake
- name: Create Source Archive
if: startsWith(github.ref, 'refs/tags/v')
run: |
VERSION="${GITHUB_REF_NAME#v}"
git archive --format=tar.gz --prefix="mtop-${VERSION}/" "$GITHUB_REF_NAME" > "mtop-${VERSION}-source.tar.gz"
- name: Collect Artifacts
run: |
mkdir -p dist/artifacts
shopt -s nullglob
for file in mtop-*.tar.gz; do
mv "$file" dist/artifacts/
done
find dist -maxdepth 3 -type f | sort
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: mtop-macos-package
path: |
dist/artifacts/*
dist/install/**
- name: Publish GitHub Release Assets
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: dist/artifacts/*
sync-homebrew-tap:
if: startsWith(github.ref, 'refs/tags/v')
needs: package-macos
runs-on: macos-14
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Resolve Version
id: version
run: echo "value=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
- name: Resolve SHA256
id: sha
run: |
VERSION="${{ steps.version.outputs.value }}"
curl -L -o "/tmp/mtop-${VERSION}-source.tar.gz" "https://github.com/lxrzlyr/mtop/releases/download/v${VERSION}/mtop-${VERSION}-source.tar.gz"
echo "value=$(shasum -a 256 /tmp/mtop-${VERSION}-source.tar.gz | awk '{print $1}')" >> "$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
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