Through the course of changes to your source repos and updates to your intent store, Ocuroot will need to execute various kinds of work to bring the current state into sync.
There are three main ways that work can happen in Ocuroot. Through creating releases, requesting work, or triggering work.
This page will detail these mechanisms and the commands that can be used to configure them in CI.
New Releases will typically be created when code is merged into the main branch of a source repo.
A new Release is triggered via the command:
ocuroot release new path/to/release.ocu.star
This process is outlined in more detail on the Releases page.
As a result of dependencies, a new release may cause additional work, such as
a new release of a backend service or ML model requiring upstream services to be redeployed to be
aware of the change. Providing the --cascade
flag to ocuroot release new
will result in this
additional work being executed automatically.
When a Release is created, it won't always be able to run to completion. Intent changes must also be handled outside of a typical Release. This is where we need a mechanism to request any outstanding work.
ocuroot work cascade
This command will inspect the state and intent stores, and identify any outstanding work that can be executed across all source repos and commits. This work will then be executed.
A summary of the work to be executed can be provided with the --dryrun
flag.