name: test / unit / python-sdk on: push: branches: [main] paths: - "sdk-python/**" - ".github/workflows/test_unit-python-sdk.yml" pull_request: branches: [main] paths: - "sdk-python/**" - ".github/workflows/test_unit-python-sdk.yml" # Least-privilege by default. Individual jobs/steps can widen when needed. permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test: runs-on: depot-ubuntu-24.04-4 timeout-minutes: 10 permissions: contents: read # id-token: write is required for Depot OIDC auth (runs-on: depot-ubuntu-*). id-token: write strategy: fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: snok/install-poetry@a783c322200f0519c7926aa6faa857c4e23e9263 # v1.4.2 with: version: latest virtualenvs-create: true virtualenvs-in-project: true - name: Install dependencies working-directory: sdk-python run: poetry lock && poetry install --with dev - name: Run tests working-directory: sdk-python run: poetry run python -m pytest tests/ -v