mirror of
https://github.com/darwincereska/homebrew-software.git
synced 2026-02-11 20:04:41 -05:00
88 lines
3.4 KiB
YAML
88 lines
3.4 KiB
YAML
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
|