name: CI on: push: branches: - dev - main pull_request: workflow_dispatch: permissions: contents: 'read' jobs: linux: runs-on: ubuntu-latest strategy: matrix: target: [x86_64, aarch64] python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('Cargo.lock') }} - uses: mamba-org/setup-micromamba@v1 with: environment-name: ci environment-file: environment.yaml create-args: >- python==${{ matrix.python-version }} init-shell: bash cache-environment: true post-cleanup: 'all' - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable - name: Build shell: bash -el {0} run: cargo build --release - name: Rust Tests shell: bash -el {0} run: cargo test --release - name: Build wheels shell: bash -el {0} run: maturin develop --release --manifest-path pyargus/Cargo.toml - name: Python Tests if: matrix.target == 'x86_64' shell: bash -el {0} run: pytest pyargus windows: runs-on: windows-latest strategy: matrix: target: [x64] python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('Cargo.lock') }} - uses: mamba-org/setup-micromamba@v1 with: environment-name: ci environment-file: environment.yaml create-args: >- python==${{ matrix.python-version }} init-shell: powershell cache-environment: true post-cleanup: 'all' - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable - name: Build shell: pwsh run: cargo build --release - name: Rust Tests shell: pwsh run: cargo test --release - name: Build wheels shell: pwsh run: maturin develop --release --manifest-path pyargus/Cargo.toml - name: Python Tests shell: pwsh run: pytest pyargus macos: runs-on: macos-latest strategy: matrix: target: [x86_64, aarch64] python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('Cargo.lock') }} - uses: mamba-org/setup-micromamba@v1 with: environment-name: ci environment-file: environment.yaml create-args: >- python==${{ matrix.python-version }} init-shell: bash cache-environment: true post-cleanup: 'all' - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable with: targets: ${{ matrix.target }}-apple-darwin - name: Build shell: bash -el {0} run: cargo build --release - name: Rust Tests shell: bash -el {0} run: cargo test --release - name: Build wheels shell: bash -el {0} run: maturin develop --release --manifest-path pyargus/Cargo.toml - name: Python Tests shell: bash -el {0} run: pytest pyargus