Merge pull request #2 from tboudreaux/feature/CI
ci(workflows): added build-and-test workflow
This commit is contained in:
47
.github/workflows/build-and-test.yml
vendored
Normal file
47
.github/workflows/build-and-test.yml
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
name: Build and Test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, fedora-latest, archlinux, macos-latest]
|
||||
include:
|
||||
- os: macos-latest
|
||||
arch: x64
|
||||
- os: macos-latest
|
||||
arch: arm64
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up dependencies
|
||||
run: |
|
||||
# Common setup for Linux
|
||||
if [[ "$RUNNER_OS" == "Linux" ]]; then
|
||||
if [[ "$matrix.os" == "ubuntu-latest" ]]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y cmake build-essential meson ninja-build python3 python3-pip libgtest-dev
|
||||
# Compile gtest manually for Ubuntu
|
||||
cd /usr/src/gtest && sudo cmake . && sudo make && sudo cp *.a /usr/lib
|
||||
elif [[ "$matrix.os" == "fedora-latest" ]]; then
|
||||
sudo dnf install -y cmake gcc-c++ make meson ninja-build gtest gtest-devel
|
||||
elif [[ "$matrix.os" == "archlinux" ]]; then
|
||||
sudo pacman -Syu --noconfirm cmake gcc make meson ninja python gtest
|
||||
fi
|
||||
# Common setup for macOS
|
||||
elif [[ "$RUNNER_OS" == "macOS" ]]; then
|
||||
brew update
|
||||
brew install cmake meson ninja python gtest
|
||||
fi
|
||||
|
||||
- name: Run build and tests
|
||||
run: ./mk
|
||||
|
||||
Reference in New Issue
Block a user