CI run 'dima/add-live-terminate' #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous integration | |
run-name: "CI run '${{ github.head_ref || github.ref_name }}'" | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
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: | |
toolchain: stable | |
components: rustfmt | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Check format | |
run: cargo make ci-format | |
check: | |
name: Check workspace | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Check workspace | |
run: cargo make ci-check | |
check-fuzzing: | |
name: Check fuzzing | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: 1.79.0 | |
components: rustfmt | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Check fuzzers | |
run: cargo build --manifest-path lib/fuzz/Cargo.toml | |
- name: Check OSS-Fuzz | |
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master | |
with: | |
oss-fuzz-project-name: surrealdb | |
language: rust | |
# Temporarily allow this step to fail | |
continue-on-error: true | |
check-wasm: | |
name: Check Wasm | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
targets: wasm32-unknown-unknown | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Check wasm | |
run: cargo make ci-check-wasm | |
clippy: | |
name: Check clippy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
components: clippy | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Run clippy | |
run: cargo make ci-clippy | |
cli: | |
name: CLI integration tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Run CLI integration tests | |
run: cargo make ci-cli-integration | |
- name: Debug info | |
if: always() | |
run: | | |
set -x | |
free -m | |
df -h | |
ps auxf | |
cat /tmp/surrealdb.log || true | |
http-server: | |
name: HTTP integration tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Run HTTP integration tests | |
run: cargo make ci-http-integration | |
ml-support: | |
name: ML integration tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Run ML integration tests | |
run: cargo make ci-ml-integration | |
ws-server: | |
name: WebSocket integration tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Run WS integration tests | |
run: cargo make ci-ws-integration | |
test: | |
name: Test workspace | |
runs-on: [ "self-hosted", "arm64", "builder" ] | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test workspace + coverage | |
run: cargo make ci-workspace-coverage | |
- name: Upload coverage report | |
uses: actions/upload-artifact@v4 | |
timeout-minutes: 1 | |
continue-on-error: true | |
with: | |
name: code-coverage-report | |
path: target/llvm-cov/html/ | |
retention-days: 5 | |
test-sdk-build: | |
name: Test SDK build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Build local | |
working-directory: tests/sdk/local | |
run: cargo build | |
- name: Build remote | |
working-directory: tests/sdk/remote | |
run: cargo build | |
ws-engine: | |
name: WebSocket engine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test ws engine | |
run: cargo make ci-api-integration-ws | |
- name: Debug info | |
if: always() | |
run: | | |
set -x | |
free -m | |
df -h | |
ps auxf | |
cat /tmp/surrealdb.log || true | |
http-engine: | |
name: HTTP engine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test http engine | |
run: cargo make ci-api-integration-http | |
- name: Debug info | |
if: always() | |
run: | | |
set -x | |
free -m | |
df -h | |
ps auxf | |
cat /tmp/surrealdb.log || true | |
any-engine: | |
name: Any engine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test any engine | |
run: cargo make ci-api-integration-any | |
- name: Debug info | |
if: always() | |
run: | | |
set -x | |
free -m | |
df -h | |
ps auxf | |
cat /tmp/surrealdb.log || true | |
mem-engine: | |
name: Memory engine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test mem engine | |
run: cargo make ci-api-integration-mem | |
file-engine: | |
name: File engine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test file engine | |
run: cargo make ci-api-integration-file | |
rocksdb-engine: | |
name: RocksDB engine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test rocksdb engine | |
run: cargo make ci-api-integration-rocksdb | |
tikv-engine: | |
name: TiKV engine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y update | |
- name: Install TiUP | |
timeout-minutes: 10 | |
run: | | |
while ! ~/.tiup/bin/tiup -v; do | |
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh | |
done | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test tikv engine | |
run: cargo make ci-api-integration-tikv | |
- name: Debug info | |
if: always() | |
run: | | |
set -x | |
free -m | |
df -h | |
ps auxf | |
cat /tmp/surrealdb.log || true | |
fdb-engine: | |
name: FoundationDB engine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Setup FoundationDB | |
uses: foundationdb-rs/[email protected] | |
with: | |
version: "7.1.61" | |
- name: Test fdb engine | |
run: cargo make ci-api-integration-fdb-7_1 | |
- name: Setup FoundationDB | |
uses: foundationdb-rs/[email protected] | |
with: | |
version: "7.3.47" | |
- name: Test fdb engine | |
run: cargo make ci-api-integration-fdb-7_3 | |
- name: Debug info | |
if: always() | |
run: | | |
set -x | |
free -m | |
df -h | |
ps auxf | |
cat /tmp/surrealdb.log || true | |
surrealkv-engine: | |
name: SurrealKV engine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test surrealkv engine | |
run: cargo make ci-api-integration-surrealkv | |
- name: Debug info | |
if: always() | |
run: | | |
set -x | |
free -m | |
df -h | |
ps auxf | |
cat /tmp/surrealdb.log || true | |
db-upgrade: | |
name: Database Upgrade from previous versions | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install cargo-make | |
run: cargo install --debug --locked cargo-make | |
- name: Test upgrade | |
# Allow breaking changes until v2 stabilises | |
continue-on-error: true | |
run: cargo make ci-database-upgrade |