40 lines
1.1 KiB
YAML
40 lines
1.1 KiB
YAML
name: Validate Brewfiles
|
|
permissions:
|
|
contents: read
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "brew/**"
|
|
jobs:
|
|
validate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
|
|
|
|
- name: Set up Homebrew
|
|
uses: Homebrew/actions/setup-homebrew@main
|
|
|
|
|
|
- name: Validate Brewfiles
|
|
shell: bash
|
|
run: |
|
|
echo "Validating Brewfiles..."
|
|
|
|
|
|
find "brew" -iname '*\.Brewfile*' -print0 | \
|
|
while IFS= read -r -d '' brewfile ; do \
|
|
echo "::group:: ===$(basename $brewfile)==="
|
|
grep -E -e "^tap" $brewfile > 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
|