Merge pull request #21852 from Homebrew/dependabot/bundler/Library/Ho… #282
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: brew-rs | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| merge_group: | |
| permissions: | |
| contents: read | |
| env: | |
| HOMEBREW_DEVELOPER: 1 | |
| HOMEBREW_EXPERIMENTAL_RUST_FRONTEND: 1 | |
| HOMEBREW_NO_AUTO_UPDATE: 1 | |
| HOMEBREW_NO_ENV_HINTS: 1 | |
| HOMEBREW_NO_INSTALL_CLEANUP: 1 | |
| defaults: | |
| run: | |
| shell: bash -xeuo pipefail {0} | |
| jobs: | |
| brew-rs: | |
| name: ${{ matrix.name }} | |
| if: github.repository_owner == 'Homebrew' | |
| runs-on: ${{ matrix.runs-on }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: brew-rs (Linux) | |
| runs-on: ubuntu-latest | |
| - name: brew-rs (macOS) | |
| runs-on: macos-26 | |
| steps: | |
| - name: Set up Homebrew | |
| id: set-up-homebrew | |
| uses: Homebrew/actions/setup-homebrew@b7f2e4e4cd0fc6580ebf3ecee0d10ac27bc02ce6 # main | |
| with: | |
| core: true | |
| cask: false | |
| - uses: Homebrew/actions/cache-homebrew-prefix@b7f2e4e4cd0fc6580ebf3ecee0d10ac27bc02ce6 # main | |
| env: | |
| HOMEBREW_EXPERIMENTAL_RUST_FRONTEND: | |
| with: | |
| install: hyperfine rust | |
| workflow-key: brew-rs | |
| uninstall: true | |
| - name: Cache Bundler RubyGems | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 | |
| with: | |
| path: ${{ steps.set-up-homebrew.outputs.gems-path }} | |
| key: ${{ matrix.runs-on }}-brew-rs-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }} | |
| restore-keys: ${{ matrix.runs-on }}-brew-rs-rubygems- | |
| - name: Install Bundler RubyGems | |
| run: brew install-bundler-gems --groups=tests | |
| - name: Set up portable Ruby | |
| uses: Homebrew/actions/setup-ruby@b7f2e4e4cd0fc6580ebf3ecee0d10ac27bc02ce6 # main | |
| with: | |
| portable-ruby: true | |
| - name: Build brew-rs | |
| run: brew vendor-install brew-rs | |
| - name: Check brew-rs formatting | |
| working-directory: ${{ steps.set-up-homebrew.outputs.repository-path }}/Library/Homebrew/rust/brew-rs | |
| run: cargo fmt --check | |
| - name: Lint brew-rs | |
| working-directory: ${{ steps.set-up-homebrew.outputs.repository-path }}/Library/Homebrew/rust/brew-rs | |
| run: cargo clippy --all-targets --locked -- -D warnings | |
| - name: Test brew-rs crate | |
| working-directory: ${{ steps.set-up-homebrew.outputs.repository-path }}/Library/Homebrew/rust/brew-rs | |
| run: cargo test --locked | |
| - name: Benchmark brew-rs | |
| working-directory: ${{ steps.set-up-homebrew.outputs.repository-path }}/Library/Homebrew/rust/brew-rs | |
| run: rake benchmark:check | |
| - name: Upload brew-rs benchmark results | |
| if: always() | |
| uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: brew-rs-benchmarks-${{ runner.os }}-${{ runner.arch }} | |
| path: ${{ steps.set-up-homebrew.outputs.repository-path }}/Library/Homebrew/rust/brew-rs/benchmark-results | |
| if-no-files-found: ignore | |
| - name: Prepare smoke test formula | |
| working-directory: ${{ steps.set-up-homebrew.outputs.repository-path }} | |
| run: Library/Homebrew/rust/brew-rs/run-brew-rs-experimental.sh uninstall --force hello || true | |
| - name: Smoke-test brew-rs install | |
| run: brew install hello | |
| - name: Smoke-test brew-rs upgrade | |
| run: brew upgrade hello | |
| - name: Smoke-test brew-rs uninstall | |
| run: brew uninstall hello | |
| - name: Smoke-test brew-rs update | |
| run: brew update --quiet --force | |
| - name: Upload brew-rs artifact | |
| uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: brew-rs-${{ runner.os }}-${{ runner.arch }} | |
| path: ${{ steps.set-up-homebrew.outputs.repository-path }}/Library/Homebrew/vendor/brew-rs/brew-rs |