surrealpatch/.github/workflows/ci.yml

408 lines
12 KiB
YAML
Raw Normal View History

name: Continuous integration
on:
push:
pull_request:
merge_group:
defaults:
run:
shell: bash
jobs:
format:
name: Check format
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Check format of code
run: cargo fmt --all --check
- name: Check format of unlinked tests
run: cargo fmt --all --check -- ./lib/tests/**/*.rs ./lib/src/kvs/tests/*.rs
check:
name: Check workspace
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2022-07-13 09:28:08 +00:00
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install protobuf-compiler libprotobuf-dev
- name: Run cargo check
run: cargo check --locked --workspace
check-wasm:
name: Check Wasm
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Run cargo check
run: cargo check --locked --package surrealdb --features protocol-ws,protocol-http,kv-mem,kv-indxdb,http --target wasm32-unknown-unknown
clippy:
name: Check clippy
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install protobuf-compiler libprotobuf-dev
- name: Run cargo clippy
2023-06-20 11:48:20 +00:00
run: cargo clippy --all-targets --all-features -- -D warnings
cli:
name: Test command line
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install protobuf-compiler libprotobuf-dev
- name: Run cargo test
run: cargo test --locked --no-default-features --features storage-mem --workspace --test cli_integration
http-server:
name: Test HTTP server
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install protobuf-compiler libprotobuf-dev
- name: Run cargo test
run: cargo test --locked --no-default-features --features storage-mem --workspace --test http_integration
test:
name: Test workspace
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install protobuf-compiler libprotobuf-dev
2023-06-23 19:21:02 +00:00
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Run cargo test (+coverage)
run: |
(set -x; df -h)
# Free up some disk space by removing unused files
(set -x; sudo rm -rf /imagegeneration || true)
(set -x; sudo rm -rf /opt/az || true)
(set -x; sudo rm -rf /opt/hostedtoolcache || true)
(set -x; sudo rm -rf /opt/google || true)
(set -x; sudo rm -rf /opt/pipx || true)
(set -x; df -h)
cargo llvm-cov --html --locked --no-default-features --features storage-mem,scripting,http --workspace -- --skip api_integration --skip cli_integration --skip http_integration
(set -x; df -h)
2023-06-23 19:21:02 +00:00
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: code-coverage-report
path: target/llvm-cov/html/
retention-days: 5
ws-engine:
name: WebSocket engine
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install protobuf-compiler libprotobuf-dev
2022-07-13 09:28:08 +00:00
2023-06-13 20:55:38 +00:00
- name: Setup FoundationDB
uses: foundationdb-rs/foundationdb-actions-install@v2.0.0
with:
version: "7.1.30"
- name: Run cargo test
run: |
2023-06-13 20:55:38 +00:00
cargo build --locked --no-default-features --features storage-fdb
(&>/dev/null ./target/debug/surreal start --auth --log trace --user root --pass root fdb:/etc/foundationdb/fdb.cluster &)
cargo test --locked --package surrealdb --no-default-features --features protocol-ws --test api api_integration::ws
http-engine:
name: HTTP engine
runs-on: ubuntu-latest
steps:
2022-07-13 09:28:08 +00:00
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2022-07-13 09:28:08 +00:00
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install protobuf-compiler libprotobuf-dev
2023-06-13 20:55:38 +00:00
- name: Setup FoundationDB
uses: foundationdb-rs/foundationdb-actions-install@v2.0.0
with:
version: "7.1.30"
- name: Run cargo test
run: |
2023-06-13 20:55:38 +00:00
cargo build --locked --no-default-features --features storage-fdb
(&>/dev/null ./target/debug/surreal start --auth --log trace --user root --pass root fdb:/etc/foundationdb/fdb.cluster &)
cargo test --locked --package surrealdb --no-default-features --features protocol-http --test api api_integration::http
mem-engine:
name: Memory engine
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
2022-07-13 09:28:08 +00:00
- name: Checkout sources
uses: actions/checkout@v3
2022-07-13 09:28:08 +00:00
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Run cargo test
run: |
cargo test --locked --package surrealdb --no-default-features --features kv-mem --lib kvs
cargo test --locked --package surrealdb --no-default-features --features kv-mem --test api api_integration::mem
2022-07-13 09:28:08 +00:00
file-engine:
name: File engine
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Run cargo test
run: |
cargo test --locked --package surrealdb --no-default-features --features kv-rocksdb --lib kvs
cargo test --locked --package surrealdb --no-default-features --features kv-rocksdb --test api api_integration::file
rocksdb-engine:
name: RocksDB engine
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Run cargo test
run: |
cargo test --locked --package surrealdb --no-default-features --features kv-rocksdb --lib kvs
cargo test --locked --package surrealdb --no-default-features --features kv-rocksdb --test api api_integration::rocksdb
speedb-engine:
name: SpeeDB engine
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Run cargo test
run: |
cargo test --locked --package surrealdb --no-default-features --features kv-speedb --lib kvs
cargo test --locked --package surrealdb --no-default-features --features kv-speedb --test api api_integration::speedb
tikv-engine:
name: TiKV engine
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install protobuf-compiler libprotobuf-dev
- name: Install TiKV
run: |
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
~/.tiup/bin/tiup install tikv pd
~/.tiup/bin/tiup -v
- name: Run cargo test
run: |
(&>/dev/null ~/.tiup/bin/tiup playground --mode tikv-slim --kv 3 --without-monitor &)
cargo test --locked --package surrealdb --no-default-features --features kv-tikv --lib kvs
cargo test --locked --package surrealdb --no-default-features --features kv-tikv --test api api_integration::tikv
2023-06-13 20:55:38 +00:00
fdb-engine:
name: FoundationDB engine
runs-on: ubuntu-latest
2023-06-13 20:55:38 +00:00
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
2023-06-13 20:55:38 +00:00
- name: Setup FoundationDB
uses: foundationdb-rs/foundationdb-actions-install@v2.0.0
with:
version: "7.1.30"
- name: Run cargo test
run: |
cargo test --locked --package surrealdb --no-default-features --features kv-fdb-7_1 --lib kvs
cargo test --locked --package surrealdb --no-default-features --features kv-fdb-7_1 --test api api_integration::fdb
any-engine:
name: Any engine
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Checkout sources
uses: actions/checkout@v3
2023-06-23 11:58:15 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install protobuf-compiler libprotobuf-dev
2023-06-13 20:55:38 +00:00
- name: Setup FoundationDB
uses: foundationdb-rs/foundationdb-actions-install@v2.0.0
with:
version: "7.1.30"
- name: Run cargo test
run: |
2023-06-13 20:55:38 +00:00
cargo build --locked --no-default-features --features storage-fdb
(&>/dev/null ./target/debug/surreal start --auth --log trace --user root --pass root fdb:/etc/foundationdb/fdb.cluster &)
cargo test --locked --package surrealdb --no-default-features --features protocol-http --test api api_integration::any