name: Python bindings CI on: push: branches: [main] pull_request: paths: # When we change pyproject.toml, we want to ensure that the maturin builds still work - test-data/** - crates/** - Cargo.* # When something in the bindings themselves changes - "py-rattler/**/*" # Or when this workflow changes - ".github/workflows/python-bindings.yml" workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: format_lint_test: name: Format, Lint and Test the Python bindings runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: submodules: recursive - uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3 with: manifest-path: py-rattler/pixi.toml environments: test - uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1.15.2 with: components: clippy, rustfmt - name: Format and Lint run: | cd py-rattler pixi run -e test lint pixi run -e test fmt-check - name: Run tests env: RATTLER_TEST_R2_READWRITE_ACCESS_KEY_ID: ${{ secrets.RATTLER_TEST_R2_READWRITE_ACCESS_KEY_ID }} RATTLER_TEST_R2_READWRITE_SECRET_ACCESS_KEY: ${{ secrets.RATTLER_TEST_R2_READWRITE_SECRET_ACCESS_KEY }} run: | cd py-rattler pixi run -e test test --color=yes