feat(grpc)!: enable celestia-grpc usage within wasm #2476
Workflow file for this run
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: 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 | |
- name: Run clippy for celestia-grpc-macros | |
run: cargo clippy -p celestia-grpc-macros --all-targets -- -D warnings | |
- name: Run clippy for wasm32 | |
run: cargo clippy --all --all-targets --target=wasm32-unknown-unknown -- -D warnings | |
docs: | |
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: Missing docs for native | |
run: cargo clippy --all -- -D missing-docs | |
- name: Missing docs for wasm32 | |
run: cargo clippy --all --target=wasm32-unknown-unknown -- -D missing-docs | |
- name: Install nightly 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: [email protected] | |
- 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: [email protected] | |
- 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: Run grpc wasm test | |
run: wasm-pack test --headless --chrome grpc | |
- 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: [email protected] | |
- name: Check for unused dependencies | |
run: cargo +nightly udeps --all-features --all-targets |