update #375
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 PATH=/opt/homebrew/opt/llvm/bin:$PATH | |
export CPATH=$LIBRARY_PATH:/opt/homebrew/include | |
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib | |
export CXX=clang++ | |
export CC=clang | |
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 PATH=/opt/homebrew/opt/llvm/bin:$PATH | |
export CPATH=$LIBRARY_PATH:/opt/homebrew/include | |
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib | |
export CXX=clang++ | |
export CC=clang | |
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: | | |
if [ "$RUNNER_OS" == "macOS" ]; then | |
export PATH=/opt/homebrew/opt/llvm/bin:$PATH | |
export CPATH=$LIBRARY_PATH:/opt/homebrew/include | |
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib | |
export CXX=clang++ | |
export CC=clang | |
fi | |
python3 -m venv venv | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
.\venv\Scripts\activate | |
else | |
. venv/bin/activate | |
fi | |
pip install . |