diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f89c78..c7c97fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,25 +44,21 @@ jobs: echo "${{ github.triggering_actor }} does not have permissions on this repo." echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" echo "Job originally triggered by ${{ github.actor }}" - exit 1 + exit 1 - ci: - needs: permissions-check - environment: - name: build-pipeline + check: strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] python-version: ['3.12', '3.13', '3.14'] - task: [check, test, format] exclude: - os: windows-latest python-version: '3.13' - os: windows-latest python-version: '3.14' runs-on: ${{ matrix.os }} - name: ${{ matrix.os }} ${{ matrix.task }} (py ${{ matrix.python-version }}) + name: ${{ matrix.os }} check (py ${{ matrix.python-version }}) steps: - uses: actions/checkout@v4 @@ -84,18 +80,82 @@ jobs: - name: Run Check shell: bash - if: matrix.task == 'check' run: | uv run pyright src tests tools examples + format: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] + python-version: ['3.12', '3.13', '3.14'] + exclude: + - os: windows-latest + python-version: '3.13' + - os: windows-latest + python-version: '3.14' + runs-on: ${{ matrix.os }} + name: ${{ matrix.os }} format (py ${{ matrix.python-version }}) + + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.ref }} + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install uv + uses: astral-sh/setup-uv@v7 + + - name: Install Dependencies + shell: bash + run: | + uv sync --extra dev + - name: Run Format shell: bash - if: matrix.task == 'format' run: | uv run black -tpy312 -tpy313 -tpy314 src tests tools examples --check + test: + needs: permissions-check + environment: + name: build-pipeline + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] + python-version: ['3.12', '3.13', '3.14'] + exclude: + - os: windows-latest + python-version: '3.13' + - os: windows-latest + python-version: '3.14' + runs-on: ${{ matrix.os }} + name: ${{ matrix.os }} (py ${{ matrix.python-version }}) + + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.ref }} + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install uv + uses: astral-sh/setup-uv@v7 + + - name: Install Dependencies + shell: bash + run: | + uv sync --extra dev + - name: Login to Azure - if: matrix.task == 'test' uses: azure/login@v2.2.0 with: client-id: ${{ secrets.AZURE_CLIENTID }} @@ -103,13 +163,11 @@ jobs: subscription-id: ${{ secrets.AZURE_SUBSCRIPTIONID }} - name: Get Keys - if: matrix.task == 'test' run: | uv run python tools/get_keys.py --vault build-pipeline-kv - name: Run Test shell: bash - if: matrix.task == 'test' run: | uv run pytest