Skip to content

Demonstrating we can run CI flows for Zenoh applications composed of several nodes across different languages and devices.

Notifications You must be signed in to change notification settings

cpspacesystems/zenoh-ci

Repository files navigation

Zenoh CI PoC

This repo's name is a misnomer. It currently serves as a development repo for a sensor fusion framework.

Meant to serve as an example of a typical multi-language Zenoh project and to demonstrate we can configure basic CI functionality.

Quickstart

Install Bazel and Bazelisk by following the instructions on the Bazel website.

Then run:

bazelisk build //...

# In separate windows, tmux panes, etc:
bazelisk run //rust_nodes/pub_test:pub
bazelisk run //rust_nodes/sub_test:sub

Bazel and Bazelisk

This project uses Bazel as a polyglot build system and Bazelisk to manage Bazel versions.

The USE_BAZEL_VERSION flag in .bazeliskrc specifies the Bazel version used when commands like bazelisk build //... are run.

Bazel is configured to ingest all Cargo.toml packages specified in /MODULE.bazel:

crate.from_cargo(
    name = "crates",
    manifests = ["//rust_nodes/pub_test:Cargo.toml", "//rust_nodes/sub_test:Cargo.toml"],
)

When writing a new Rust package, add its Cargo.toml path to this list and collect deps using this boilerplate:

load("@crates//:defs.bzl", "all_crate_deps", "aliases")

# ...

rust_binary(
    name = "<package_name>",
    srcs = ["src/main.rs"],
    edition = "2021",
    aliases = aliases(),
    deps = all_crate_deps(normal = True),
)

About

Demonstrating we can run CI flows for Zenoh applications composed of several nodes across different languages and devices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published