39 lines
1.2 KiB
YAML
39 lines
1.2 KiB
YAML
name: Validate Brewfiles
|
|
permissions:
|
|
contents: read
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "custom/brew/**"
|
|
jobs:
|
|
validate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v5
|
|
|
|
- name: Set up Homebrew
|
|
uses: Homebrew/actions/setup-homebrew@1ccc07ccd54b6048295516a3eb89b192c35057dc # master
|
|
|
|
- name: Validate Brewfiles
|
|
shell: bash
|
|
run: |
|
|
echo "Validating Brewfiles in custom/brew/ directory..."
|
|
|
|
find "custom/brew" -iname '*\.Brewfile*' -print0 | \
|
|
while IFS= read -r -d '' brewfile ; do \
|
|
echo "::group:: ===$(basename $brewfile)==="
|
|
grep -E -e "^tap" $brewfile > taps.Brewfile || echo "# No taps" > taps.Brewfile
|
|
set -xeuo pipefail
|
|
brew bundle --file=./taps.Brewfile
|
|
if brew bundle exec whoami --file="$brewfile" | grep -F -e "${USER}" ; then
|
|
echo "✓ $brewfile is valid"
|
|
else
|
|
echo "✗ $brewfile validation failed"
|
|
exit 1
|
|
fi
|
|
set +xeuo pipefail
|
|
echo "::endgroup::"
|
|
done
|