CI #453
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| pull_request: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: '0 0 * * 5' | |
| jobs: | |
| unlimited: | |
| name: Run build and unit tests. (unlimited API) | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install python3-setuptools python3-dev libsystemd-dev \ | |
| systemd dbus python3 gcc | |
| - name: Build extension | |
| run: | | |
| python3 setup.py build --build-lib build-lib | |
| - name: Run unit tests | |
| run: | | |
| PYTHONPATH=./build-lib python3 -m unittest --verbose | |
| limited: | |
| name: Run build and unit tests. (limited API) | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install python3-setuptools python3-dev libsystemd-dev \ | |
| systemd dbus python3 gcc pkg-config | |
| - name: Build extension | |
| env: | |
| PYTHON_SDBUS_USE_LIMITED_API: "1" | |
| run: | | |
| python3 setup.py build --build-lib build-lib | |
| - name: Run unit tests | |
| run: | | |
| PYTHONPATH=./build-lib python3 -m unittest --verbose | |
| lint: | |
| name: Run linters on the code | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install python3 python3-pip ninja-build | |
| python -m venv --system-site-packages venv | |
| ./venv/bin/pip install --upgrade \ | |
| mypy isort flake8 pyflakes pycodestyle \ | |
| jinja2 'Sphinx<8.0' types-setuptools meson | |
| - name: Run linters | |
| run: | | |
| export PATH="$(readlink -f ./venv/bin):${PATH}" | |
| meson setup build | |
| meson compile -C build lint-python | |
| alpine: | |
| name: Alpine Linux test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: Build Alpine container | |
| run: | | |
| podman build --tag alpine-ci -f ./test/containers/Containerfile-alpine . | |
| - name: Test unlimited API | |
| run: | | |
| podman run --rm alpine-ci | |
| - name: Test limited API | |
| run: | | |
| podman run --env PYTHON_SDBUS_USE_LIMITED_API=1 --rm alpine-ci |