name: Python Unit Tests concurrency: group: Python-Unit-Tests-${{ github.workflow }}-${{ github.head_ref || github.event.workflow_run.head_branch || github.run_id }} cancel-in-progress: true on: merge_group: pull_request: branches: - main - 'release/**' push: tags: - "v*.*.*" permissions: contents: read jobs: backend-check: # See https://runs-on.com/runners/linux/ runs-on: [runs-on, runner=2cpu-linux-arm64, "run-id=${{ github.run_id }}-backend-check"] timeout-minutes: 45 env: PYTHONPATH: ./backend REDIS_CLOUD_PYTEST_PASSWORD: ${{ secrets.REDIS_CLOUD_PYTEST_PASSWORD }} DISABLE_TELEMETRY: "true" # Unit tests run without a live backend; EE code paths that depend on # Redis/Vespa/etc are not available, so disable enforcement here. LICENSE_ENFORCEMENT_ENABLED: "false" steps: - uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 with: persist-credentials: false - name: Setup Python and Install Dependencies uses: ./.github/actions/setup-python-and-install-dependencies with: requirements: | backend/requirements/default.txt backend/requirements/dev.txt backend/requirements/model_server.txt backend/requirements/ee.txt - name: Run Tests shell: script -q -e -c "bash --noprofile --norc -eo pipefail {0}" run: py.test -o junit_family=xunit2 -xv --ff backend/tests/unit