mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

We've migrated Homebrew/actions to use the `main` branch now so let's update these references.
74 lines
2.3 KiB
YAML
74 lines
2.3 KiB
YAML
name: Check Vendor Version
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- .github/workflows/vendor-version.yml
|
|
- Library/Homebrew/vendor/bundle/ruby/**
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash -xeuo pipefail {0}
|
|
|
|
jobs:
|
|
check-vendor-version:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Set up Homebrew
|
|
id: set-up-homebrew
|
|
uses: Homebrew/actions/setup-homebrew@main
|
|
with:
|
|
core: false
|
|
cask: false
|
|
test-bot: false
|
|
|
|
- name: Install Bundler RubyGems
|
|
run: brew install-bundler-gems --groups=all
|
|
|
|
- name: Get Ruby ABI version
|
|
id: ruby-abi
|
|
run: echo "version=$(brew ruby -e "puts Gem.ruby_api_version")" >> "${GITHUB_OUTPUT}"
|
|
|
|
- name: Get gem info
|
|
id: gem-info
|
|
working-directory: ${{ steps.set-up-homebrew.outputs.gems-path }}/${{ steps.ruby-abi.outputs.version }}/gems
|
|
run: |
|
|
{
|
|
echo "vendor-version=$(<../.homebrew_vendor_version)"
|
|
echo "ignored<<EOS"
|
|
git check-ignore -- *
|
|
echo "EOS"
|
|
} >> "${GITHUB_OUTPUT}"
|
|
|
|
- name: Compare to base ref
|
|
working-directory: ${{ steps.set-up-homebrew.outputs.gems-path }}/${{ steps.ruby-abi.outputs.version }}
|
|
env:
|
|
ABI_VERSION: ${{ steps.ruby-abi.outputs.version }}
|
|
VENDOR_VERSION: ${{ steps.gem-info.outputs.vendor-version }}
|
|
IGNORED_GEMS: ${{ steps.gem-info.outputs.ignored }}
|
|
run: |
|
|
git checkout "origin/${GITHUB_BASE_REF}"
|
|
rm .homebrew_vendor_version
|
|
brew install-bundler-gems --groups=all
|
|
if [[ "$(brew ruby -e "puts Gem.ruby_api_version")" == "${ABI_VERSION}" && \
|
|
"$(<.homebrew_vendor_version)" == "${VENDOR_VERSION}" ]]
|
|
then
|
|
while IFS= read -r gem; do
|
|
gem_dir="./gems/${gem}"
|
|
[[ -d "${gem_dir}" ]] || continue
|
|
exit_code=0
|
|
git check-ignore --quiet "${gem_dir}" || exit_code=$?
|
|
if (( exit_code != 0 )); then
|
|
if (( exit_code == 1 )); then
|
|
echo "::error::VENDOR_VERSION needs bumping in utils/gems.rb" >&2
|
|
else
|
|
echo "::error::git check-ignore failed" >&2
|
|
fi
|
|
exit "${exit_code}"
|
|
fi
|
|
done <<< "${IGNORED_GEMS}"
|
|
fi
|