backport form main #1525
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
# ref: https://github.com/actions/runner-images | |
name: amd64 Linux CMake Python | |
on: [push, pull_request, workflow_dispatch] | |
# Building using the github runner environement directly. | |
jobs: | |
native: | |
strategy: | |
matrix: | |
cmake: [ | |
{generator: "Ninja", config: Release, build_target: all, test_target: test, install_target: install}, | |
{generator: "Ninja Multi-Config", config: Release, build_target: all, test_target: test, install_target: install}, | |
{generator: "Unix Makefiles", config: Release, build_target: all, test_target: test, install_target: install}, | |
] | |
python: [ | |
{version: "3.9"}, | |
{version: "3.10"}, | |
{version: "3.11"}, | |
{version: "3.12"}, | |
] | |
fail-fast: false | |
name: Linux • ${{ matrix.cmake.generator }} • Python-${{ matrix.python.version }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Ninja | |
run: | | |
sudo apt update | |
sudo apt install -y ninja-build | |
- name: Swig install | |
run: | | |
sudo apt install -y swig | |
swig -version | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python.version }} | |
- name: Update Path | |
run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
- name: Check cmake | |
run: cmake --version | |
- name: Configure | |
run: > | |
cmake -S. -Bbuild | |
-G "${{ matrix.cmake.generator }}" | |
-DCMAKE_BUILD_TYPE=${{ matrix.cmake.config }} | |
-DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF | |
-DBUILD_PYTHON=ON | |
-DCMAKE_INSTALL_PREFIX=install | |
- name: Build | |
run: > | |
cmake --build build | |
--config ${{ matrix.cmake.config }} | |
--target ${{ matrix.cmake.build_target }} | |
-v -j2 | |
- name: Test | |
run: > | |
CTEST_OUTPUT_ON_FAILURE=1 | |
cmake --build build | |
--config ${{ matrix.cmake.config }} | |
--target ${{ matrix.cmake.test_target }} | |
-v | |
- name: Install | |
run: > | |
cmake --build build | |
--config ${{ matrix.cmake.config }} | |
--target ${{ matrix.cmake.install_target }} | |
-v |