# Copyright 2025 Enactic, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. name: Test on: push: branches: - '**' - '!dependabot/**' tags: - '**' pull_request: concurrency: group: ${{ github.head_ref || github.sha }}-${{ github.workflow }} cancel-in-progress: true jobs: lint: name: Lint runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install pre-commit run: | python -m pip install pre-commit - uses: actions/cache@v4 with: path: ~/.cache/pre-commit key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }} - name: Run pre-commit run: | pre-commit run --show-diff-on-failure --color=always --all-files build: name: Build runs-on: ${{ matrix.runs-on }} timeout-minutes: 5 strategy: fail-fast: false matrix: runs-on: - ubuntu-22.04 - ubuntu-24.04 steps: - uses: actions/checkout@v4 with: submodules: recursive - name: "C++: Install dependencies" run: | sudo apt update sudo apt install -y -V \ cmake \ ninja-build - name: "C++: CMake" run: | cmake \ -B ../build \ -S . \ -GNinja \ -DCMAKE_INSTALL_PREFIX=$PWD/install \ -DCMAKE_BUILD_TYPE=Debug - name: "C++: Build" run: | ninja -C ../build - name: Install run: | ninja -C ../build install - uses: actions/setup-python@v5 with: python-version: 3 - name: "Python: Install dependencies" run: | python3 -m pip install -r python/requirements.txt - name: "Python: Build: pkg-config" run: | python3 -m pip install \ -Csetup-args=--pkg-config-path=$PWD/install/lib/pkgconfig \ ./python - name: "Python: Build: CMake" run: | python3 -m pip install \ -Csetup-args=--cmake-prefix-path=$PWD/install \ ./python