notcurses/.github/workflows/macos_test.yml
Michael Bradley, Jr deccda9f96
ci: run GHA workflow for macOS on all commits to master and PRs
Also split out the build of libqrcodegen on macOS into a separate step, and
make the workflows for Ubuntu and macOS as consistent as possible; may require
more changes depending on what passes and doesn't pass on macOS.

The GHA workflow for Windows will be revised in a separate PR.
2021-07-18 15:46:55 -05:00

96 lines
2.4 KiB
YAML

---
name: macOS
on:
pull_request:
push:
branches:
- master
jobs:
tests:
env:
COLORTERM: truecolor
NPROC: 2
TERM: xterm
name: 🍎 build, test, & install
runs-on: macos-latest
steps:
- name: Install tools and libraries via Homebrew
run: |
brew install \
coreutils \
doctest \
ffmpeg \
libunistring \
ncurses \
pandoc \
readline
- uses: actions/checkout@v2
- name: Build libqrcodegen
run: |
mkdir "${HOME}/repos" && cd "${HOME}/repos"
git clone https://github.com/nayuki/QR-Code-generator.git
cd QR-Code-generator/c
AR=/usr/local/opt/llvm/bin/llvm-ar
make AR="${AR}"
mkdir -p "${HOME}"/opt/qrcodegen/{include,lib}
cd "${HOME}/opt/qrcodegen/include" \
&& ln -s "${HOME}/repos/QR-Code-generator/c" ./qrcodegen
cd "${HOME}/opt/qrcodegen/lib" \
&& ln -s "${HOME}/repos/QR-Code-generator/c/libqrcodegen.a" ./libqrcodegen.a
cd /usr/local/opt && ln -s "${HOME}/opt/qrcodegen" ./qrcodegen
- name: cmake
run: |
export PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig"
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS="-I/usr/local/opt/qrcodegen/include -L/usr/local/opt/qrcodegen/lib" \
-DUSE_QRCODEGEN=on
- name: make
run: |
cd build
make -j${NPROC}
- name: ctest
run: |
cd build
ctest --output-on-failure
- name: make install
run: |
cd build
sudo make install
- name: python wrappers (old)
run: |
python3 -m pip install --upgrade pip
pip install cffi pypandoc
cd cffi
python3 setup.py sdist build
sudo python3 setup.py install
notcurses-pydemo > /dev/null
ncdirect-pydemo > /dev/null
- name: python wrappers (new)
run: |
cd python
python3 setup.py build
sudo python3 setup.py install
python3 examples/000-print-version.py
- name: rust wrappers
run: |
export PKG_CONFIG_PATH="/usr/local/libdata/pkgconfig"
cd rust
rustc --version
cargo build
cargo t_all