Add brew bundle and brew services integration tests

We've had a few regressions in `brew bundle` and `brew services`
recently that would have been caught by actual integration tests.

This is similar to the "default formula" jobs but we want to run outside
of those containers so we can run e.g. systemd.

This will avoid bloating the runtime of already longer-running jobs.
This commit is contained in:
Mike McQuaid 2025-04-07 17:09:56 +01:00
parent 334bf23768
commit e6420932bf
No known key found for this signature in database
2 changed files with 50 additions and 3 deletions

View File

@ -2,9 +2,8 @@ name: actionlint
on:
push:
paths:
- '.github/workflows/*.ya?ml'
- '.github/actionlint.yaml'
branches:
- master
pull_request:
paths:
- '.github/workflows/*.ya?ml'

View File

@ -398,6 +398,54 @@ jobs:
- run: brew test-bot --only-formulae --only-json-tab --test-default-formula
test-brew-bundle-services:
name: ${{ matrix.name }}
needs: syntax
if: github.repository_owner == 'Homebrew' && github.event_name != 'push'
runs-on: ${{ matrix.runs-on }}
strategy:
matrix:
include:
- name: test brew bundle and brew services (Ubuntu)
runs-on: ubuntu-latest
- name: test brew bundle and brew services (macOS)
runs-on: macos-15
steps:
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
with:
core: true
cask: false
test-bot: false
- run: brew test-bot --only-cleanup-before
- run: brew test-bot --only-setup
- name: Run brew bundle and brew services integration tests
run: |
cat <<EOS >> Brewfile
brew "git"
brew "memcached", restart_service: true
brew "postgresql@15", restart_service: true
cask "1password"
cask "1password-cli"
cask "google-chrome"
# VSCode cask is not available on Linux.
vscode "github.copilot" if OS.mac?
EOS
brew bundle check && exit 1
brew bundle check --verbose && exit 1
brew bundle list
brew bundle --verbose
brew services list
brew bundle env | grep PATH | grep git
brew bundle env --install
brew bundle exec --services true
brew services list
test-analytics:
runs-on: ${{ matrix.os }}
strategy: