name: Continuous integration on: push: branches: - main pull_request: branches: - main # Setting the shell option, it will run 'bash --noprofile --norc -eo pipefail {0}' defaults: run: shell: bash jobs: test: name: Test runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install dependencies run: | sudo apt-get -y update sudo apt-get -y install protobuf-compiler - name: Install stable toolchain uses: dtolnay/rust-toolchain@stable - name: Run cargo test run: | (&>/dev/null cargo run --no-default-features -F storage-mem -- start --log trace --user root --pass root memory &) cargo test --workspace --features protocol-ws,protocol-http,kv-rocksdb lint: name: Lint runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install dependencies run: | sudo apt-get -y update sudo apt-get -y install protobuf-compiler - name: Install stable toolchain uses: dtolnay/rust-toolchain@stable with: targets: wasm32-unknown-unknown components: rustfmt, clippy - name: Run cargo check run: cargo check --workspace - name: Run cargo fmt run: cargo fmt --all -- --check - name: Run cargo clippy run: cargo clippy -- -W warnings - name: Run WebAssembly check run: cargo check --features kv-mem,kv-indxdb,protocol-ws,protocol-http --target wasm32-unknown-unknown --package surrealdb