Fix #390
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: GitHub actions | |
on: | |
push: | |
branches: ["**"] | |
pull_request: | |
branches: ["**"] | |
env: | |
BUILD_TYPE: Debug | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install vcpkg (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
git clone https://github.com/microsoft/vcpkg | |
.\vcpkg\bootstrap-vcpkg.bat | |
.\vcpkg\vcpkg install pkgconf:x64-windows | |
- name: Install gmp | |
shell: bash | |
run: | | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
./vcpkg/vcpkg install gmp:x64-windows | |
elif [ "$RUNNER_OS" == "Linux" ]; then | |
sudo apt-get install -y libgmp-dev | |
elif [ "$RUNNER_OS" == "macOS" ]; then | |
brew install gmp | |
else | |
echo "$RUNNER_OS not supported" | |
exit 1 | |
fi | |
- name: Configure staq | |
shell: bash | |
run: | | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
cmake -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ | |
-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake \ | |
-DINSTALL_SOURCES=ON | |
else | |
cmake -B build -DINSTALL_SOURCES=ON -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
fi | |
- name: Build staq | |
shell: bash | |
run: | | |
if [ "$RUNNER_OS" == "macOS" ]; then | |
# Required for libgmp headers | |
export CPATH=$LIBRARY_PATH:/opt/homebrew/include | |
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib | |
fi | |
cmake --build build | |
- name: Install staq | |
shell: bash | |
run: | | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
cmake --build build --target install | |
else | |
sudo cmake --install build | |
fi | |
- name: Configure standalone example | |
run: | | |
cmake -S examples/standalone -B examples/standalone/build | |
- name: Build standalone example | |
run: | | |
cmake --build examples/standalone/build --target standalone | |
- name: Run standalone example | |
shell: bash | |
run: | | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
./examples/standalone/build/${{env.BUILD_TYPE}}/standalone.exe --version | |
else | |
./examples/standalone/build/standalone --version | |
fi | |
- name: Build unit tests | |
shell: bash | |
run: | | |
if [ "$RUNNER_OS" == "macOS" ]; then | |
# Required for libgmp headers | |
export CPATH=$LIBRARY_PATH:/opt/homebrew/include | |
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib | |
fi | |
cmake --build build/unit_tests --target unit_tests | |
- name: Run unit tests | |
run: ctest --test-dir build | |
- name: Uninstall | |
run: | | |
cmake --build build --target uninstall | |
dir 'C:/Program Files (x86)/staq/bin/' | |
- name: Install pystaq | |
shell: bash | |
run: | | |
if [ "$RUNNER_OS" == "macOS" ]; then | |
# Required for libgmp headers | |
export CPATH=$LIBRARY_PATH:/opt/homebrew/include | |
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib | |
fi | |
python3 -m venv venv | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
.\venv\Scripts\activate | |
else | |
. venv/bin/activate | |
fi | |
pip install . |