Skip to content
No description, website, or topics provided.
Rust Shell Dockerfile
Branch: master
Clone or download
Latest commit 12b717b Sep 17, 2019


Cincinnati is an update protocol designed to facilitate automatic updates. It describes a particular method for representing transitions between releases of a project and allowing a client to perform automatic updates between these releases.

Quick Start

Prepare custom environment variables

# Please change these accordingly
export CINCINNATI_REPO="redhat/openshift-cincinnati-test-public-manual"

Executables on the build host

cargo run --package graph-builder -- --service.address --upstream.registry.url "${CINCINNATI_REGISTRY}" --upstream.registry.repository "${CINCINNATI_REPO}" &
cargo run --package policy-engine -- --service.address &
 curl --verbose --header 'Accept:application/json' http://localhost:8081/v1/graph\?channel=a

Note: the default configuration of the policy-engine requires the channel parameter to be present in each request.


There are several ways of testing various parts of the Cincinnati stack.



The language-level tests can be run using cargo --test in the repository's root directory:

cargo test


The online tests for the graph-builder depend on a curated set of repositories to be available on in the redhat organization. The build instructions for (re-)populating the repositories are available at graph-builder/tests/images/ The script must run be run from its directory to function:

cd graph-builder/tests/images
./ test-*

Run CI testsuite locally

The script hack/ can be used to run the CI tests locally before submitting a pull-request.


The graph-builder package currently has network dependent tests which gated behind the feature test-net and test-net-private. The latter requires setting the environment variable CINCINNATI_TEST_CREDENTIALS_PATH which is equivalent to graph-builder's --credentials-path.

Assuming you have access to images under the organization, and have an appropriate $HOME/.docker/config.json in place, this might work on your machine:

cd graph-builder
export CINCINNATI_TEST_CREDENTIALS_PATH="$HOME/.docker/config.json"
cargo test --features test-net,test-net-private


The dist/ directory contains various CI/CD related files.

Openshift Dev

  • Uses dist/ as the build container image
  • Run the following scripts on PR
    • dist/
    • dist/

For details please see


  • Uses dist/ as the build container image
  • Runs dist/ for successful merges to the master branch and pushes the result to the staging environment (URL is not yet publicly available)


Updating the Plugin-Interface Scheme

The interface for external plugins is defined as a Protobuf v3 scheme in the file [cincinnati/src/plugins/interface.proto][./cincinnati/src/plugins/interface.proto]. In order to regenerate the files the cincinnati crate must be built with the codegen-protoc feature:

cd cincinnati
cargo build --features=codegen-protoc

The CI/CD system doesn't do this and it relies on the generated code being committed to the repository; please do so after generating new code!

You can’t perform that action at this time.