scenepic/.github/workflows/linux.yml

86 строки
2.0 KiB
YAML

name: Linux Workflow
on:
workflow_call:
inputs:
vmImage:
required: true
type: string
workflow_dispatch:
inputs:
vmImage:
description: VM Image to use
required: true
type: string
default: ubuntu-latest
jobs:
LinuxPython:
strategy:
matrix:
python_version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
runs-on: ${{inputs.vmImage}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Python ${{matrix.python_version}}
uses: actions/setup-python@v5
with:
python-version: ${{matrix.python_version}}
- name: Get dependencies
run: |
python -m pip install --upgrade pip
sudo apt-get install doxygen
- name: NPM steps
run: |
npm install
npm run build
- name: Python build
run: |
pip install -e .[dev] -v
- name: Python test
uses: pavelzw/pytest-action@v1
with:
verbose: true
job_summary: true
emoji: true
LinuxCPP:
runs-on: ${{inputs.vmImage}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Get dependencies
run: |
python -m pip install --upgrade pip
sudo apt-get install doxygen
- name: NPM steps
run: |
npm install
npm run build
- name: CMake config
run: cmake -B ${{github.workspace}}/build -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DSCENEPIC_BUILD_TESTS=1 -DSCENEPIC_BUILD_DOCUMENTATION=1
- name: CMake build
run: cmake --build ${{github.workspace}}/build --config Release --target cpp
- name: CMake test
working-directory: ${{github.workspace}}/build
run: ctest -V --build-config Release --timeout 120 --output-on-failure -T Test