name: CI on: push: branches: [main] pull_request: branches: [main] env: CARGO_INCREMENTAL: 0 CARGO_NET_RETRY: 10 RUSTUP_MAX_RETRIES: 10 jobs: cargo_build: name: "cargo build" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: profile: minimal - 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 --all --release cargo_fmt: name: "cargo fmt" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly-2022-11-01 override: true components: rustfmt - 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 --all --check cargo_clippy: name: "cargo clippy" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly-2022-11-01 override: true components: clippy - 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 --workspace --all-targets --all-features -- -D warnings cargo_test: name: "cargo test" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly-2022-11-01 override: true - 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 --all maturin_build: name: "maturin build" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly-2022-11-01 override: true - 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