name: Run Pytest with Coverage on: workflow_call: inputs: pr_number: description: 'Pull request number' required: false type: number secrets: CODECOV_TOKEN: required: true permissions: pull-requests: write jobs: pytest: runs-on: ubuntu-latest 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: '3.11' - 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 with Coverage id: coverage run: | pip install coverage pytest pytest-random-order pytest-cov pytest --cov --random-order --cov-branch --cov-report=xml tests/unit_tests/ - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} slug: bec-project/bec_widgets