name: CI
on: [push, pull_request]
jobs:
test:
name: Test ${{ matrix.compiler }} on ${{ matrix.os }}
strategy:
matrix:
compiler: [gcc, clang]
os: [ubuntu-latest, macOS-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Compile and run tests
run: make && make test
env:
CC: ${{ matrix.compiler }}
test_alpine:
name: Test on Alpine Linux
runs-on: ubuntu-latest
container: docker://alpine
steps:
- uses: actions/checkout@v4
- name: Install build dependencies
run: apk add build-base
- name: Compile and run tests
run: make && make test
multiarch_test:
name: Test on ${{ matrix.arch }}
strategy:
matrix:
arch: [armv7, aarch64, s390x, ppc64le]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: uraimo/run-on-arch-action@v3.0.1
name: Compile and run tests
id: test
with:
arch: ${{ matrix.arch }}
distro: ubuntu22.04
githubToken: ${{ github.token }}
install: |
apt-get update -q -y
apt-get install -y gcc make
rm -rf /var/lib/apt/lists/*
run: make && make test
acceptance_test:
name: Acceptance Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4'
bundler-cache: true
working-directory: test/acceptance
- name: Compile fzy
run: |
make
- name: Run acceptance tests
run: make acceptance