Skip to content

eclipse-score/orchestrator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

score_orchestrator

Repository for Orchestration framework and safe async runtime called kyron for Rust

Nightly CIT Nightly CIT (Bazel) Orchestrator Examples Kyron Examples

Feature status and roadmap

Continuous Integration Nightly Tests

This repository includes two GitHub Actions workflows for component integration testing:

Component Integration Tests (Cargo-based)

  • Schedule: Runs nightly at 1:45 UTC
  • Build System: Uses Cargo for Rust components
  • Testing: Executes Python test suite with pytest
  • Nightly Mode: Runs tests 20 times with --count 20 --repeat-scope session for enhanced reliability testing
  • Triggers: Push/PR to main/development branches, and scheduled nightly runs

Component Integration Tests (Bazel-based)

  • Schedule: Runs nightly at 1:15 UTC
  • Build System: Uses Bazel for all components
  • Testing: Builds Rust test scenarios and runs Python component integration tests
  • Nightly Mode: Uses cit_repeat target for flake detection
  • Triggers: Push/PR to main/development branches, and scheduled nightly runs

Monitor via the status badges above and the Actions tab

Setup

System dependencies

sudo apt-get update
sudo apt-get install -y curl build-essential protobuf-compiler libclang-dev git python3-dev python-is-python3 python3-venv

Rust installation

Install Rust using rustup

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

Bazel installation

Install Bazel using Bazelisk

curl --proto '=https' -sSfOL https://github.com/bazelbuild/bazelisk/releases/download/v1.26.0/bazelisk-amd64.deb
dpkg -i bazelisk-amd64.deb
rm bazelisk-amd64.deb

Correct Bazel version will be installed on first run, based on bazelversion file.

Build

List all targets:

bazel query //...

Build selected target:

bazel build <TARGET_NAME>

Build all targets:

bazel build //...

Build for QNX8

Preparations

Please follow Where to obtain the QNX 8.0 SDP to get access to QNX8 and how to setup QNX8 for S-CORE. In above link You will also find an instructions how to replace SDP in case You need to use other one (ie HW specific).

Building

./scripts/build_qnx8.sh BAZEL_TARGET (default is //src/...)

Run

List all binary targets, including examples:

bazel query 'kind(rust_binary, //src/...)'

Bazel is not able to distinguish between examples and regular executables.

Run selected target:

bazel run <TARGET_NAME>

Test

List all test targets:

bazel query 'kind(rust_test, //...)'

Run all tests:

bazel test //...

Run unit tests (tests from src/ directory):

bazel test //src/...

Run selected test target:

bazel test <TARGET_NAME>

Cargo-based operations

Please use Bazel whenever possible. However for easy development we provide a build based on Cargo

Build with Cargo

It's recommended to use cargo xtask. It has the advantage of using separate build directories for each task causing no need to rebuild from scratch for different types of checks

Build using xtask - debug and release:

cargo xtask build
cargo xtask build:release

Build using cargo directly:

cargo build

Run with Cargo

List all examples:

cargo xtask run --example

Using cargo xtask:

cargo xtask run --example <EXAMPLE_NAME>

Run unit tests with Cargo

Using cargo xtask:

cargo xtask build:test --lib

About

Orchestration framework & Safe async runtime for Rust

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
LICENSE.md

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 12