pub enum ActionEntry {
GitClone,
CargoInstall {
crate_name: Option<String>,
package: Option<String>,
profile: Option<String>,
features: Vec<String>,
install_to: Option<PathBuf>,
},
Docker {
tag: String,
dockerfile: Option<PathBuf>,
context: Option<PathBuf>,
},
Repolith {
manifest: Option<PathBuf>,
},
}Expand description
Tagged variant of [[node.action]], dispatched by the TOML kind field
(kebab-case: "git-clone", "cargo-install", "docker", "repolith").
Variants§
GitClone
kind = "git-clone" — fetch the node’s source.
CargoInstall
kind = "cargo-install" — cargo install from the node’s source tree.
Fields
crate_name: Option<String>Crate name (TOML key crate). Defaults to the node’s id when absent.
This is the binary target name (cargo install --bin), which
may differ from the package that contains it — see Self::CargoInstall::package.
package: Option<String>Package to select from the source, when the source contains more
than one (cargo install [CRATE], the positional argument).
Needed for git repositories that ship several packages with
binaries — test fixtures, tool workspaces — where cargo refuses
to guess. No implicit default: deriving it from
Self::CargoInstall::crate_name would break the common case
where the binary name differs from the package name. Absent
means no positional argument, i.e. cargo’s own resolution.
profile: Option<String>Cargo profile to build with (--profile), e.g. "dev" for a
debug build. Absent means cargo’s default, which is release.
A debug build skips optimisation and is dramatically faster to
produce — the right choice when iterating on a local path
source. The binary is larger and slower at run time; that is the
trade the field exists to make explicit.
Docker
kind = "docker" — docker build an image from the node’s checkout.
Build-only by design: running containers is process supervision, which repolith explicitly does not do (see README “What it is NOT”).
Fields
tag: StringImage tag to apply (-t). Required; validated against the
docker reference charset and the no-leading-dash rule.
Repolith
kind = "repolith" — federation: the node’s checkout contains its
own repolith.toml, executed as a nested plan
(orchestrator-of-orchestrators).
The nested stack keeps its own local cache, exactly as if
repolith sync had been run in that directory by hand. Cycle
detection and a maximum federation depth are enforced by the
executing action (repolith-engine::federation).
Trait Implementations§
Source§impl Clone for ActionEntry
impl Clone for ActionEntry
Source§fn clone(&self) -> ActionEntry
fn clone(&self) -> ActionEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more