Skip to content

feat(grpc, types, proto)!: Add tonic gRPC #2304

feat(grpc, types, proto)!: Add tonic gRPC

feat(grpc, types, proto)!: Add tonic gRPC #2304

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
jobs:
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install wasm Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
target: wasm32-unknown-unknown
- name: Run clippy for native
run: cargo clippy --all --all-targets -- -D warnings -D missing-docs
- name: Run clippy for wasm32
run: cargo clippy --all --all-targets --target=wasm32-unknown-unknown -- -D warnings -D missing-docs
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Run rustdoc check
env:
RUSTDOCFLAGS: --cfg docsrs -D warnings
run: cargo +nightly doc --no-deps
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run fmt
run: cargo fmt -- --check
test-wasm:
runs-on: ubuntu-latest
env:
WASM_BINDGEN_TEST_TIMEOUT: 120
steps:
- uses: actions/checkout@v1
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
- name: Install wasm-pack
uses: taiki-e/cache-cargo-install-action@v1
with:
tool: wasm-pack@0.12.1
- name: Install chromedriver # we don't specify chrome version to match whatever's installed
uses: nanasess/setup-chromedriver@v2
- name: Build (wasm32-unknown-unknown)
run: cargo build --all --target=wasm32-unknown-unknown --all-features
- name: Test proto crate
run: wasm-pack test --headless --chrome proto
- name: Test types crate
run: wasm-pack test --headless --chrome types --features=wasm-bindgen
- name: Test node crate
run: wasm-pack test --headless --chrome node
- name: Build and pack node-wasm
run: wasm-pack build --release --target web node-wasm && wasm-pack pack node-wasm
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up cargo cache
uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys:
cargo-${{ hashFiles('**/Cargo.lock') }}
cargo-
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
- name: Install wasm-pack
uses: taiki-e/cache-cargo-install-action@v1
with:
tool: wasm-pack@0.12.1
- name: Install chromedriver # we don't specify chrome version to match whatever's installed
uses: nanasess/setup-chromedriver@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
# needed for the buildx in order to access gha cache
# https://github.com/docker/bake-action/issues/36#issuecomment-1103961612
- name: Expose github actions runtime
uses: crazy-max/ghaction-github-runtime@v1
- name: Build the docker-compose stack
run: |
cat > ci/cache.json <<EOF
{
"target": {
"validator": {
"cache-from": ["type=gha,scope=validator"],
"cache-to": ["type=gha,mode=max,scope=validator"],
"output": ["type=docker"]
},
"bridge-0": {
"cache-from": ["type=gha,scope=bridge-0"],
"cache-to": ["type=gha,mode=max,scope=bridge-0"],
"output": ["type=docker"]
},
"bridge-1": {
"cache-from": ["type=gha,scope=bridge-1"],
"cache-to": ["type=gha,mode=max,scope=bridge-1"],
"output": ["type=docker"]
}
}
}
EOF
cd ci && docker buildx bake --file docker-compose.yml --file cache.json --load
- name: Run the docker-compose stack
run: docker compose -f ci/docker-compose.yml up --no-build -d
- name: Wait for bridge node to start
run: |
docker compose -f ci/docker-compose.yml logs -f |
awk '/Configuration finished. Running a bridge node/ {print;exit}'
- name: Generate auth tokens
run: ./tools/gen_auth_tokens.sh
- name: Run tests
run: cargo test
- name: Run rpc wasm test
run: wasm-pack test --headless --chrome rpc --features=wasm-bindgen
- name: Test node-wasm crate
# We're running node-wasm tests in release mode to get around a failing debug assertion
# https://github.com/libp2p/rust-libp2p/issues/5618
run: wasm-pack test --headless --release --chrome node-wasm
unused-deps:
runs-on: ubuntu-latest
name: unused dependencies
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Install cargo-udeps
uses: taiki-e/cache-cargo-install-action@v1
with:
tool: cargo-udeps@0.1
- name: Check for unused dependencies
run: cargo +nightly udeps --all-features --all-targets