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-12-20 jobs: typos: name: Spell Check with Typos runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: crate-ci/typos@v1.0.4 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 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - 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 toml: name: Toml Check if: github.event.pull_request.draft == false runs-on: ubuntu-latest timeout-minutes: 60 steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.RUST_TOOLCHAIN }} - name: Rust Cache uses: Swatinem/rust-cache@v2 - name: Install taplo run: cargo install taplo-cli --version ^0.8 --locked - name: Run taplo run: taplo format --check --option "indent_string= " # 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 # with: # repo-token: ${{ secrets.GITHUB_TOKEN }} # - 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" sqlness: name: Sqlness Test if: github.event.pull_request.draft == false runs-on: ubuntu-latest-8-cores timeout-minutes: 60 steps: - uses: actions/checkout@v3 - uses: arduino/setup-protoc@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.RUST_TOOLCHAIN }} - name: Rust Cache uses: Swatinem/rust-cache@v2 - name: Run sqlness run: cargo run --bin sqlness-runner 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 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - 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 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - 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