brew/.github/workflows/tests.yml
2019-11-22 09:25:27 +00:00

111 lines
3.5 KiB
YAML

name: GitHub Actions CI
on:
push:
branches: master
pull_request: []
jobs:
tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-latest]
steps:
- name: Set up Git repository
uses: actions/checkout@master
- name: Set up Homebrew
run: |
if [ "$RUNNER_OS" = "Linux" ]; then
HOMEBREW_REPOSITORY=/home/linuxbrew/.linuxbrew
sudo mkdir -p /home/linuxbrew
sudo ln -s "$PWD" "$HOMEBREW_REPOSITORY"
sudo chown -R "$USER" /home/linuxbrew
else
HOMEBREW_REPOSITORY="$(brew --repo)"
mv "$HOMEBREW_REPOSITORY/Library/Taps" "$PWD/Library"
sudo rm -rf "$HOMEBREW_REPOSITORY"
sudo ln -s "$PWD" "$HOMEBREW_REPOSITORY"
brew update-reset Library/Taps/homebrew/homebrew-core
# Install taps needed for 'brew tests'
brew tap homebrew/cask
brew tap homebrew/bundle
brew tap homebrew/services
fi
- name: Install Bundler RubyGems
run: |
export PATH="/home/linuxbrew/.linuxbrew/bin:/usr/local/bin:/usr/bin:/bin"
brew install-bundler-gems
# Check for uncommitted gems
git -C $(brew --repo) diff --stat --exit-code Library/Homebrew/vendor/bundle/ruby
if [ "$RUNNER_OS" = "Linux" ]; then
# Fix permissions for 'brew tests'
sudo chmod -R g-w,o-w /home/linuxbrew /home/runner /opt
fi
- name: Run brew tests
run: |
# brew tests doesn't like world writable directories
umask 022
# set variables for coverage reporting
export HOMEBREW_CI_BUILD_NUMBER="$GITHUB_REF"
export HOMEBREW_CI_BRANCH="$HEAD_GITHUB_REF"
export HOMEBREW_GITHUB_REPOSITORY="$GITHUB_REPOSITORY"
export PATH="/home/linuxbrew/.linuxbrew/bin:/usr/local/bin:/usr/bin:/bin"
brew tests --no-compat --online
brew tests --generic --online
brew tests --online --coverage
env:
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# set variables for coverage reporting
HOMEBREW_GITHUB_ACTIONS: 1
HOMEBREW_CI_NAME: github-actions
HOMEBREW_COVERALLS_REPO_TOKEN: 3F6U6ZqctoNJwKyREremsqMgpU3qYgxFk
# These cannot be queried at the macOS level on GitHub Actions.
HOMEBREW_LANGUAGES: en-GB
- name: Run brew style
run: |
export PATH="/home/linuxbrew/.linuxbrew/bin:/usr/local/bin:/usr/bin:/bin"
brew style
- name: Run brew man
run: |
export PATH="/home/linuxbrew/.linuxbrew/bin:/usr/local/bin:/usr/bin:/bin"
brew man --fail-if-changed
- name: Run brew update-tests
run: |
export PATH="/home/linuxbrew/.linuxbrew/bin:/usr/local/bin:/usr/bin:/bin"
git config --global user.name "BrewTestBot"
git config --global user.email "homebrew-test-bot@lists.sfconservancy.org"
brew update-test
brew update-test --to-tag
brew update-test --commit=HEAD
- name: Run brew readall
run: |
export PATH="/home/linuxbrew/.linuxbrew/bin:/usr/local/bin:/usr/bin:/bin"
brew readall --aliases
- name: Build Docker image
run: |
docker pull homebrew/brew
docker-compose -f Dockerfile.yml build sut
if: matrix.os == 'ubuntu-latest'
- name: Run brew test-bot
run: |
if [ "$RUNNER_OS" = "Linux" ]; then
docker-compose -f Dockerfile.yml run --rm -v $GITHUB_WORKSPACE:/tmp/test-bot sut
else
brew test-bot
fi