name: CI on: push: branches: [ main ] pull_request: branches: [ main ] jobs: cargo_build: name: "cargo build" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: actions/cache@v3 env: cache-name: cache-cargo with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - run: cargo build --release cargo_fmt: name: "cargo fmt" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: actions/cache@v3 env: cache-name: cache-cargo with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - run: cargo fmt --check cargo_clippy: name: "cargo clippy" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: actions/cache@v3 env: cache-name: cache-cargo with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - run: cargo clippy -- -D warnings cargo_test: name: "cargo test" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: actions/cache@v3 env: cache-name: cache-cargo with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - run: cargo test maturin_build: name: "maturin build" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: actions/setup-python@v4 with: python-version: '3.10' - run: pip install maturin - uses: actions/cache@v3 env: cache-name: cache-cargo with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - run: maturin build -b bin