Skip to content

Update Homebrew Formula #3

Update Homebrew Formula

Update Homebrew Formula #3

Workflow file for this run

name: Update Homebrew Formula
on:
release:
types: [published]
workflow_dispatch:
inputs:
tag:
description: "Release tag to update the formula (e.g., 'v2.0.12')"
required: false
default: "2.0.11"
jobs:
update-formula:
runs-on: ubuntu-latest
steps:
- name: Extract version from input or release
id: extract_version
run: |
# Use the provided tag if triggered manually, otherwise use the release tag
if [ "${{ github.event.inputs.tag }}" != "" ]; then
VERSION="${{ github.event.inputs.tag }}"
else
VERSION="${GITHUB_REF#refs/tags/}"
fi
# Normalize by removing a leading 'v' if present
VERSION="${VERSION#v}"
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Find jar asset download URL
id: find_asset
run: |
# Get release data from GitHub API
release_data=$(curl -sL -H "Accept: application/vnd.github+json" \
"https://api.github.com/repos/skidfuscatordev/skidfuscator-java-obfuscator/releases/tags/${{ steps.extract_version.outputs.version }}")
# Find the asset named 'skidfuscator.jar' (adjust if needed)
asset_url=$(echo "$release_data" | jq -r '.assets[] | select(.name == "skidfuscator.jar") | .browser_download_url')
if [ -z "$asset_url" ]; then
echo "Could not find skidfuscator.jar in the release."
exit 1
fi
echo "asset_url=$asset_url" >> $GITHUB_OUTPUT
- name: Download jar
run: |
curl -L ${{ steps.find_asset.outputs.asset_url }} -o skidfuscator.jar
- name: Compute SHA256
id: sha256
run: |
SHA256=$(shasum -a 256 skidfuscator.jar | awk '{print $1}')
echo "sha256=$SHA256" >> $GITHUB_OUTPUT
- name: Checkout tap repository
uses: actions/checkout@v3
with:
repository: skidfuscatordev/homebrew-skidfuscator
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
# Use a branch name where the formula resides, usually 'main'
ref: master
- name: Update formula
run: |
FORMULA_PATH="Formula/skidfuscator.rb"
NEW_VERSION="${{ steps.extract_version.outputs.version }}"
NEW_URL="${{ steps.find_asset.outputs.asset_url }}"
NEW_SHA256="${{ steps.sha256.outputs.sha256 }}"
# Update url line
sed -i.bak "s|^ url \".*\"| url \"${NEW_URL}\"|" $FORMULA_PATH
# Update sha256 line
sed -i.bak "s|^ sha256 \".*\"| sha256 \"${NEW_SHA256}\"|" $FORMULA_PATH
# Update version line
sed -i.bak "s|^ version \".*\"| version \"${NEW_VERSION}\"|" $FORMULA_PATH
# Clean backup
rm $FORMULA_PATH.bak
echo "Updated formula with version=${NEW_VERSION}, url=${NEW_URL}, sha256=${NEW_SHA256}"
cat $FORMULA_PATH
- name: Commit and push changes
run: |
git config user.name "github-actions"
git config user.email "[email protected]"
git add Formula/skidfuscator.rb
git commit -m "Update Skidfuscator formula to version ${{ steps.extract_version.outputs.version }}"
git push origin HEAD:main
env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}