Skip to content

style: use per-tap actionlint config when available #266

style: use per-tap actionlint config when available

style: use per-tap actionlint config when available #266

Workflow file for this run

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@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
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