|
68 | 68 | asset_path: ./${{ env.FILE_NAME }}
|
69 | 69 | asset_name: ${{ env.FILE_NAME }}
|
70 | 70 | asset_content_type: application/gzip
|
| 71 | + |
| 72 | + - name: Update Homebrew Cask |
| 73 | + env: |
| 74 | + PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} |
| 75 | + run: | |
| 76 | + # Configure Git |
| 77 | + git config --global user.name "GitHub Actions" |
| 78 | + git config --global user.email "[email protected]" |
| 79 | +
|
| 80 | + # Clone your tap repository |
| 81 | + git clone https://github.com/janekbaraniewski/homebrew-janekbaraniewski.git |
| 82 | + cd homebrew-janekbaraniewski |
| 83 | +
|
| 84 | + # Fetch the latest release data from GitHub API |
| 85 | + RELEASE_DATA=$(curl -s -H "Authorization: token $PERSONAL_ACCESS_TOKEN" "https://api.github.com/repos/janekbaraniewski/IPMenuBar/releases/latest") |
| 86 | +
|
| 87 | + # Extract the version (tag name), removing the leading 'v' |
| 88 | + APP_VERSION=$(echo $RELEASE_DATA | jq -r ".tag_name" | sed 's/^v//') |
| 89 | +
|
| 90 | + # Extract the tar.gz asset download URL |
| 91 | + RELEASE_URL=$(echo $RELEASE_DATA | jq -r '.assets[] | select(.name | endswith(".tar.gz")) | .browser_download_url') |
| 92 | +
|
| 93 | + # Get the SHA256 checksum of the release asset |
| 94 | + SHA256=$(curl -Ls $RELEASE_URL | shasum -a 256 | awk '{ print $1 }') |
| 95 | +
|
| 96 | + # Update the Cask file |
| 97 | + sed -i '' "s/version '.*'/version '$APP_VERSION'/" Casks/ipmenubar.rb |
| 98 | + sed -i '' "s|url '.*'|url '$RELEASE_URL'|" Casks/ipmenubar.rb |
| 99 | + sed -i '' "s/sha256 '.*'/sha256 '$SHA256'/" Casks/ipmenubar.rb |
| 100 | +
|
| 101 | + # Commit and push the changes |
| 102 | + git add Casks/ipmenubar.rb |
| 103 | + git commit -m "Update IPMenuBar to version $APP_VERSION" |
| 104 | + git push origin master |
0 commit comments