--- on: [push] name: CI jobs: # formatting: # name: Formatting # runs-on: ubuntu-22.04 # steps: # - name: Checkout # uses: actions/checkout@v4 # - name: Set up Rust # uses: https://github.com/dtolnay/rust-toolchain@stable # with: # components: rustfmt # - name: Check Rust formatting # run: cargo fmt --all -- --check # clippy: # name: Clippy # runs-on: ubuntu-22.04 # steps: # - name: Checkout # uses: actions/checkout@v4 # - name: Set up Rust # uses: https://github.com/dtolnay/rust-toolchain@stable # with: # components: clippy # - name: Run Clippy # run: cargo clippy -- -D warnings build: name: Build (and tests, for now) runs-on: ubuntu-22.04 steps: - name: Checkout the code uses: actions/checkout@v4 - name: Set up Rust uses: https://github.com/dtolnay/rust-toolchain@stable - name: Set up the Python toolchain uses: actions/setup-python@v5 with: python-version: "3.13" - name: Set up the Python environment # For most Python CI stuff this isn't needed, but maturin specifically doesn't like to function without a venv run: | python3 -m venv venv source venv/bin/activate pip install -r requirements.txt - name: Build Rust code run: | source venv/bin/activate maturin build - name: Save built wheel uses: forgejo/upload-artifact@v4 with: name: pyority_queue.whl path: target/wheels/*.whl compression-level: 0 python-test: name: Python tests runs-on: ubuntu-22.04 steps: - name: Checkout the code uses: actions/checkout@v4 - name: Set up the Python toolchain uses: actions/setup-python@v5 with: python-version: "3.13" - name: Set up the Python environment run: pip install -r requirements.txt - name: Retrieve built wheel uses: forgejo/download-artifact@v4 - name: Install built wheel run: pip install pyority_queue.whl - name: Run Python tests run: pytest tests/*.py rust-test: name: Rust tests runs-on: ubuntu-22.04 steps: - name: Checkout the code uses: actions/checkout@v4 - name: Set up Rust uses: https://github.com/dtolnay/rust-toolchain@stable - name: Set up the Python toolchain uses: actions/setup-python@v5 with: python-version: "3.13" - name: Run Rust tests run: cargo test