66 lines
2.2 KiB
YAML
66 lines
2.2 KiB
YAML
name: build
|
|
on: [push]
|
|
permissions:
|
|
contents: read
|
|
jobs:
|
|
all:
|
|
runs-on: ${{ matrix.os }}
|
|
name: ${{ matrix.os }}${{ matrix.name_extra }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [macos-latest, ubuntu-latest, windows-latest]
|
|
cmake_extra: [""]
|
|
name_extra: [""]
|
|
include:
|
|
- os: windows-latest
|
|
cmake_extra: "-T ClangCl"
|
|
name_extra: " clang-cl"
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v4
|
|
- name: install python and pip
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: install dependencies (Linux)
|
|
if: ${{ runner.os == 'Linux' }}
|
|
run: |
|
|
sudo apt-get install libzstd-dev
|
|
- name: install latest CMake and Ninja for lukka/run-vcpkg (Windows)
|
|
if: ${{ runner.os == 'Windows' }}
|
|
uses: lukka/get-cmake@latest
|
|
- name: install dependencies (Windows)
|
|
if: ${{ runner.os == 'Windows' }}
|
|
uses: lukka/run-vcpkg@v11
|
|
with:
|
|
vcpkgGitCommitId: 2cf957350da28ad032178a974607f59f961217d9
|
|
- name: prepare build directory and install nihtest
|
|
run: |
|
|
cmake -E make_directory ${{runner.workspace}}/build
|
|
pip install nihtest
|
|
- name: configure (Unix)
|
|
if: ${{ runner.os != 'Windows' }}
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: |
|
|
cmake ${{ matrix.cmake_extra }} ${{github.workspace}}
|
|
- name: configure (Windows)
|
|
if: ${{ runner.os == 'Windows' }}
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: |
|
|
cmake ${{ matrix.cmake_extra }} -DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake ${{github.workspace}}
|
|
- name: build
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: |
|
|
cmake --build . --config Release
|
|
- name: Archive production artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: regress-directory-${{ matrix.os }}-${{ matrix.name_extra }}
|
|
path: |
|
|
${{runner.workspace}}/build/regress
|
|
- name: test
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: |
|
|
ctest --output-on-failure -V -C Release
|