Skip to content

Remove in-repo BSR plugin artifacts (#13) #24

Remove in-repo BSR plugin artifacts (#13)

Remove in-repo BSR plugin artifacts (#13) #24

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -Dwarnings
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: sudo apt-get install -y protobuf-compiler
- run: cargo check --workspace --all-features
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: sudo apt-get install -y protobuf-compiler
- run: cargo test --workspace --all-features
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: sudo apt-get install -y protobuf-compiler
- run: cargo clippy --workspace --all-features -- -D warnings
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: cargo +nightly fmt --all -- --check
doc:
name: Documentation
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: sudo apt-get install -y protobuf-compiler
- run: cargo doc --workspace --all-features --no-deps
# Integration test: start server, run client, verify RPCs work end-to-end
examples:
name: Examples
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: sudo apt-get install -y protobuf-compiler
- run: ./examples/multiservice/test.sh
# Conformance tests: validate protocol compliance.
# Matrix runs server and client suites in parallel — the server suite
# (~20s) finishes in the shadow of the client suite (~90s), so the
# duplicated build is net-faster than running both serially.
conformance:
name: Conformance (${{ matrix.mode }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- mode: server
config: conformance/config/connect-only.yaml
bin: conformance-server
- mode: client
config: conformance/config/client-connect-only.yaml
bin: conformance-client
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Download conformance runner
run: ./conformance/scripts/download-conformance.sh
- name: Build conformance binary
run: cargo build --release -p connectrpc-conformance --bin ${{ matrix.bin }}
- name: Run conformance suite
run: |
./conformance/bin/connectconformance --mode ${{ matrix.mode }} \
--conf ${{ matrix.config }} \
-- ./target/release/${{ matrix.bin }}
# Test with minimal feature set
minimal:
name: Minimal features
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo check -p connectrpc --no-default-features
- run: cargo test -p connectrpc --no-default-features