on: pull_request: types: [opened, synchronize, reopened, ready_for_review] paths-ignore: - 'docs/**' - 'config/**' - '**.md' - '.dockerignore' - 'docker/**' push: branches: - develop - main paths-ignore: - 'docs/**' - 'config/**' - '**.md' - '.dockerignore' - 'docker/**' - '.gitignore' workflow_dispatch: name: CI env: RUST_TOOLCHAIN: nightly-2022-07-14 jobs: check: name: Check if: github.event.pull_request.draft == false runs-on: ubuntu-latest timeout-minutes: 60 steps: - uses: actions/checkout@v3 - uses: arduino/setup-protoc@v1 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.RUST_TOOLCHAIN }} - name: Rust Cache uses: Swatinem/rust-cache@v2 - name: Run cargo check run: cargo check --workspace --all-targets # Use coverage to run test. # test: # name: Test Suite # if: github.event.pull_request.draft == false # runs-on: ubuntu-latest # timeout-minutes: 60 # steps: # - uses: actions/checkout@v3 # - name: Cache LLVM and Clang # id: cache-llvm # uses: actions/cache@v3 # with: # path: ./llvm # key: llvm # - uses: arduino/setup-protoc@v1 # - uses: KyleMayes/install-llvm-action@v1 # with: # version: "14.0" # cached: ${{ steps.cache-llvm.outputs.cache-hit }} # - uses: dtolnay/rust-toolchain@master # with: # toolchain: ${{ env.RUST_TOOLCHAIN }} # - name: Rust Cache # uses: Swatinem/rust-cache@v2 # - name: Cleanup disk # uses: curoky/cleanup-disk-action@v2.0 # with: # retain: 'rust,llvm' # - name: Install latest nextest release # uses: taiki-e/install-action@nextest # - name: Run tests # run: cargo nextest run # env: # CARGO_BUILD_RUSTFLAGS: "-C link-arg=-fuse-ld=lld" # RUST_BACKTRACE: 1 # GT_S3_BUCKET: ${{ secrets.S3_BUCKET }} # GT_S3_ACCESS_KEY_ID: ${{ secrets.S3_ACCESS_KEY_ID }} # GT_S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} # UNITTEST_LOG_DIR: "__unittest_logs" fmt: name: Rustfmt if: github.event.pull_request.draft == false runs-on: ubuntu-latest timeout-minutes: 60 steps: - uses: actions/checkout@v3 - uses: arduino/setup-protoc@v1 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.RUST_TOOLCHAIN }} components: rustfmt - name: Rust Cache uses: Swatinem/rust-cache@v2 - name: Run cargo fmt run: cargo fmt --all -- --check clippy: name: Clippy if: github.event.pull_request.draft == false runs-on: ubuntu-latest timeout-minutes: 60 steps: - uses: actions/checkout@v3 - uses: arduino/setup-protoc@v1 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.RUST_TOOLCHAIN }} components: clippy - name: Rust Cache uses: Swatinem/rust-cache@v2 - name: Run cargo clippy run: cargo clippy --workspace --all-targets -- -D warnings -D clippy::print_stdout -D clippy::print_stderr