feat: build as static library #100
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: Lanelet2 CI | |
on: | |
push: | |
branches: | |
- "**" | |
tags: | |
- "**" | |
pull_request: | |
jobs: | |
formatting: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Format | |
uses: cpp-linter/cpp-linter-action@v2 | |
id: formatter | |
with: | |
version: 17 | |
style: file | |
tidy-checks: '-*' # only formatting | |
- name: Fail? | |
if: steps.formatter.outputs.checks-failed > 0 | |
run: echo "Some files failed the formatting checks!" && exit 1 | |
lint: | |
needs: formatting | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
cache: 'pip' | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Create Conan build | |
run: | | |
conan profile detect --force | |
conan install . --output-folder=build --build=missing | |
- name: Build with CMake | |
run: | | |
cmake -S . -B build --preset conan-release -DCMAKE_BUILD_TYPE=Release | |
cmake --build build | |
- name: Lint | |
uses: cpp-linter/cpp-linter-action@v2 | |
id: linter | |
with: | |
version: 17 | |
style: file | |
tidy-checks: '' # force the use of .clang-tidy | |
database: 'build' | |
# - name: Fail? | |
# if: steps.linter.outputs.checks-failed > 0 | |
# run: echo "Some files failed the linting checks!" && exit 1 | |
test: | |
name: Build on ${{ matrix.machine.os }} (shared=${{ matrix.options.shared }}) | |
needs: formatting | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, windows-latest, macos-latest ] | |
options: | |
- { shared: 'True' } # shared library | |
- { shared: 'False' } # static library | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
cache: 'pip' | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Build with Conan | |
run: | | |
conan profile detect --force | |
conan create . --build=missing -o shared=${{ matrix.options.shared }} |