name: Run Pytest with different Python versions on: [workflow_call] jobs: pytest-matrix: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.10", "3.11", "3.12"] env: CHILD_PIPELINE_BRANCH: main # Set the branch you want for ophyd_devices BEC_CORE_BRANCH: main # Set the branch you want for bec OPHYD_DEVICES_BRANCH: main # Set the branch you want for ophyd_devices PROJECT_PATH: ${{ github.repository }} QTWEBENGINE_DISABLE_SANDBOX: 1 QT_QPA_PLATFORM: "offscreen" steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y libgl1 libegl1 x11-utils libxkbcommon-x11-0 libdbus-1-3 xvfb sudo apt-get -y install libnss3 libxdamage1 libasound2t64 libatomic1 libxcursor1 - name: Clone and install dependencies run: | echo -e "\033[35;1m Using branch $BEC_CORE_BRANCH of BEC CORE \033[0;m"; git clone --branch $BEC_CORE_BRANCH https://gitlab.psi.ch/bec/bec.git echo -e "\033[35;1m Using branch $OPHYD_DEVICES_BRANCH of OPHYD_DEVICES \033[0;m"; git clone --branch $OPHYD_DEVICES_BRANCH https://gitlab.psi.ch/bec/ophyd_devices.git export OHPYD_DEVICES_PATH=$PWD/ophyd_devices pip install -e ./ophyd_devices pip install -e ./bec/bec_lib[dev] pip install -e ./bec/bec_ipython_client pip install -e .[dev,pyside6] - name: Run Pytest run: | pip install pytest pytest-random-order pytest -v --maxfail=2 --junitxml=report.xml --random-order ./tests/unit_tests