Update #373
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_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake \ | |
-DINSTALL_SOURCES=ON | |
else | |
cmake -B build -DINSTALL_SOURCES=ON | |
fi | |
- name: Build staq | |
shell: bash | |
run: | | |
if [ "$RUNNER_OS" == "macOS" ]; then | |
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 --install build | |
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 | |
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 | |
shell: bash | |
run: | | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
cmake --build build --target uninstall | |
else | |
sudo cmake --build build --target uninstall | |
fi | |
- name: Install pystaq | |
shell: bash | |
run: | | |
python3 -m venv venv | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
.\venv\Scripts\activate | |
else | |
. venv/bin/activate | |
fi | |
pip install . |