cycle counter #115
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: pytest | |
# coverage is made up by multiple runs on different hosts | |
# self-hosted is a RPI and has hardware attached to test and gain high coverage | |
# after all jobs finished, coverage is uploaded as described here | |
# https://about.codecov.io/blog/uploading-code-coverage-in-a-separate-job-on-github-actions/ | |
on: [push, pull_request] | |
permissions: | |
contents: read | |
jobs: | |
tests: | |
env: | |
acquisition__camera_backends__active_backend: VirtualCamera | |
acquisition__io_backends__active_backend: VirtualIo | |
runs-on: ubuntu-latest | |
continue-on-error: false | |
strategy: | |
fail-fast: true | |
matrix: | |
python-version: ["3.10", "3.11", "3.12", "3.13"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install system apt dependencies | |
run: | | |
sudo apt update | |
sudo apt -y install libturbojpeg python3-pip libgl1 git | |
- name: install pdm | |
run: | | |
pipx install pdm # on hosted pipx is installed | |
pdm install | |
- name: Run pytest | |
run: | | |
pdm run test | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-${{ matrix.python-version }} | |
path: coverage.xml | |
tests-hardware-rpi: | |
# env: | |
## Sets environment variable | |
runs-on: [self-hosted, rpi] | |
if: ${{ github.repository_owner == 'photobooth-app' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- run: pipx install pdm | |
- run: pipx ensurepath | |
- run: pdm venv create --force 3.11 --system-site-packages # incl system site to allow for picamera2 to import | |
- run: pdm install # install in-project env | |
- name: Test with pytest | |
run: | | |
pdm run test | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-hardware-rpi | |
path: ./coverage.xml | |
upload-to-codecov: | |
needs: [tests,tests-hardware-rpi] | |
runs-on: ubuntu-latest | |
if: ${{ github.repository_owner == 'photobooth-app' }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
- name: Upload to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} |