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<> "${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