Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
154 changes: 154 additions & 0 deletions .github/workflows/engine-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
name: Engine RPC CI

on:
push:
branches: [ main, feat/rpc-failover-optimization ]
paths:
- 'engine/**'
- '.github/workflows/engine-ci.yml'
pull_request:
branches: [ main ]
paths:
- 'engine/**'

env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1

jobs:
test:
name: Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
rust: [stable, beta]
steps:
- uses: actions/checkout@v3

- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}

- name: Cache cargo registry
uses: actions/cache@v3
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v3
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo build
uses: actions/cache@v3
with:
path: engine/target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}

- name: Run tests
run: |
cd engine
cargo test --verbose

- name: Run integration tests
run: |
cd engine
cargo test --test integration_test --verbose

lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- name: Check formatting
run: |
cd engine
cargo fmt -- --check

- name: Run clippy
run: |
cd engine
cargo clippy -- -D warnings

security:
name: Security Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Install cargo-audit
run: cargo install cargo-audit

- name: Run security audit
run: |
cd engine
cargo audit

benchmark:
name: Benchmark
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Run benchmarks
run: |
cd engine
cargo test --release -- --ignored --nocapture

coverage:
name: Code Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Install tarpaulin
run: cargo install cargo-tarpaulin

- name: Generate coverage
run: |
cd engine
cargo tarpaulin --out Xml --output-dir coverage

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: ./engine/coverage/cobertura.xml
flags: engine

build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Build release
run: |
cd engine
cargo build --release --verbose

- name: Check documentation
run: |
cd engine
cargo doc --no-deps
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
members = ["engine-core", "src/audit-guard"]
members = ["engine-core", "src/audit-guard", "engine"]
resolver = "2"

[profile.release]
Expand Down
Loading
Loading