name: Bump NoteVC Formula on: workflow_dispatch: jobs: bump: runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout repository uses: actions/checkout@v4 - name: Get latest release info from notevc id: release run: | api="https://api.github.com/repos/darwincereska/notevc/releases/latest" release_json=$(curl -fsSL "$api") version=$(echo "$release_json" | jq -r .tag_name | sed 's/^v//') mac_url=$(echo "$release_json" | jq -r '.assets[] | select(.name=="notevc-macos-arm64") | .browser_download_url') linux_url=$(echo "$release_json" | jq -r '.assets[] | select(.name=="notevc-linux-x64") | .browser_download_url') echo "version=$version" >> $GITHUB_OUTPUT echo "mac_url=$mac_url" >> $GITHUB_OUTPUT echo "linux_url=$linux_url" >> $GITHUB_OUTPUT echo "Latest version: $version" echo "macOS asset URL: $mac_url" echo "Linux asset URL: $linux_url" - name: Get current formula version id: current run: | current=$(grep 'version "' Formula/notevc.rb | cut -d'"' -f2) echo "current=$current" >> $GITHUB_OUTPUT echo "Current formula version: $current" - name: Stop if formula is up to date if: ${{ steps.release.outputs.version == steps.current.outputs.current }} run: | echo "Formula is already up to date." exit 0 - name: Download binaries and compute SHA256 id: hashes run: | mkdir -p tmp curl -fsSL -o tmp/notevc-macos-arm64 "${{ steps.release.outputs.mac_url }}" curl -fsSL -o tmp/notevc-linux-x64 "${{ steps.release.outputs.linux_url }}" mac_hash=$(sha256sum tmp/notevc-macos-arm64 | awk '{print $1}') linux_hash=$(sha256sum tmp/notevc-linux-x64 | awk '{print $1}') echo "mac_hash=$mac_hash" >> $GITHUB_OUTPUT echo "linux_hash=$linux_hash" >> $GITHUB_OUTPUT echo "mac hash: $mac_hash" echo "linux hash: $linux_hash" - name: Update Formula file run: | version=${{ steps.release.outputs.version }} mac_hash=${{ steps.hashes.outputs.mac_hash }} linux_hash=${{ steps.hashes.outputs.linux_hash }} mac_url=${{ steps.release.outputs.mac_url }} linux_url=${{ steps.release.outputs.linux_url }} # Update version sed -i "s/^ version \".*\"/ version \"${version}\"/" Formula/notevc.rb # Update macOS SHA256 in its block sed -i "/if OS\.mac\?/ { :a; N; /sha256 \"/ { s/sha256 \".*\"/sha256 \"${mac_hash}\"/; b; }; ba }" Formula/notevc.rb # Update Linux SHA256 in its block sed -i "/elsif OS\.linux\?/ { :a; N; /sha256 \"/ { s/sha256 \".*\"/sha256 \"${linux_hash}\"/; b; }; ba }" Formula/notevc.rb echo "Updated Formula:" cat Formula/notevc.rb - name: Commit and push changes run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add Formula/notevc.rb if git diff --cached --quiet; then echo "No changes detected. Formula already up to date." exit 0 fi git commit -m "bump(notevc): updated version to ${version}" git push