Skip to content

Commit

Permalink
ci: update formula-update.yml to use repository-dispatch
Browse files Browse the repository at this point in the history
  • Loading branch information
ChrisSchinnerl committed Feb 7, 2024
1 parent c19d16b commit 04da1fe
Showing 1 changed file with 25 additions and 29 deletions.
54 changes: 25 additions & 29 deletions .github/workflows/formula-update.yml
Original file line number Diff line number Diff line change
@@ -1,46 +1,42 @@
name: Update Homebrew Formulas

on:
# Run hourly
schedule:
- cron: '0 * * * *'
# Enable manual trigger
repository_dispatch:
types: [release-tagged]
workflow_dispatch:
inputs:
tag:
description: 'Version to build'
required: true
default: 'v1.0.3'
project:
description: 'Project to build'
required: true
default: 'renterd'

jobs:
update-formula:
runs-on: ubuntu-latest
strategy:
matrix:
formula: ["renterd", "hostd"]

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Check for new tag in ${{ matrix.formula }} repository
id: check-tag
env:
GH_TOKEN: ${{ github.token }}
- name: Store input in env
run: |
# Fetch tags with pagination
TAGS_JSON=$(gh api --paginate repos/SiaFoundation/${{ matrix.formula }}/tags)
# Extract tags, sort them in version order, and pick the highest version
LATEST_TAG=$(echo "$TAGS_JSON" | jq -r '.[] | select(.name | startswith("v")).name' | sort -Vr | head -n 1)
echo "Latest tag for ${{ matrix.formula }} is $LATEST_TAG"
echo "GO_TAG=$LATEST_TAG" >> $GITHUB_ENV
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "RELEASE_TAG=${{ github.event.inputs.tag }}" >> $GITHUB_ENV
echo "PROJECT=${{ github.event.inputs.project }}" >> $GITHUB_ENV
elif [ "${{ github.event_name }}" = "repository_dispatch" ]; then
echo "RELEASE_TAG=${{ github.event.client_payload.tag }}" >> $GITHUB_ENV
echo "PROJECT=${{ github.event.client_payload.project }}" >> $GITHUB_ENV
fi
- name: Update Homebrew Formula for ${{ matrix.formula }}
run: sed -i 's/:tag => "[^"]*"/:tag => "${{ env.GO_TAG }}"/' ./Formula/${{ matrix.formula }}.rb
- name: Update Homebrew Formula for ${{ env.PROJECT }}
run: sed -i 's/:tag => "[^"]*"/:tag => "${{ env.RELEASE_TAG }}"/' ./Formula/${{ env.PROJECT }}.rb

- name: Create Pull Request
uses: peter-evans/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: '${{ matrix.formula }}: ${{ env.GO_TAG }}'
title: '${{ matrix.formula }}: ${{ env.GO_TAG }}'
body: 'This is an automated PR to update the ${{ matrix.formula }} formula'
branch: ${{ matrix.formula }}/update
commit-message: '${{ env.PROJECT }}: ${{ env.RELEASE_TAG }}'
title: '${{ env.PROJECT }}: ${{ env.RELEASE_TAG }}'
body: 'This is an automated PR to update the ${{ env.PROJECT }} formula'
branch: ${{ env.PROJECT }}/update
base: master

0 comments on commit 04da1fe

Please sign in to comment.