pub struct Verify {
pub e2e: Vec<String>,
pub gate: Vec<String>,
pub pre_gate: Vec<String>,
pub shell: Option<Vec<String>>,
}Expand description
Shell commands that gate the winner.
Fields§
§e2e: Vec<String>Run in the winner’s worktree once per review round. Its output is fed back to the fixer. This is the “real machine” leg of the review.
gate: Vec<String>Final gate. Must all exit 0 before a merge is attempted.
pre_gate: Vec<String>Mechanical fixers (formatters) run in the winner’s worktree just before
gate, after review is clean. Anything they change is committed as one
neutral-identity commit so the gate and the PR see it. A command that
fails or times out is a warning, never a failed run: the gate stays the
single arbiter. Empty (the default) turns the feature off. Runs under
graph.verify_timeout() per command, like the gate. Meant for light
tools: it is not scanned for CARGO_TARGET_DIR, and it should be
idempotent since a resumed run may repeat it.
shell: Option<Vec<String>>Shell used to run the commands above. Defaults to sh -c, or
cmd /C when sh is not on PATH.
Implementations§
Source§impl Verify
impl Verify
Sourcepub fn cache_dir(&self) -> Option<PathBuf>
pub fn cache_dir(&self) -> Option<PathBuf>
The CARGO_TARGET_DIR= value of the first rendered command that sets
one, if any. See crate::disk::extract_cargo_target_dir for the shape
this reads back. One rendering is enough - they all set the same
rendered {{ vars.cache }} path via the same shell - and the first e2e
command is checked before the gate because the e2e rebuilds the crate.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Verify
impl<'de> Deserialize<'de> for Verify
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Verify
impl RefUnwindSafe for Verify
impl Send for Verify
impl Sync for Verify
impl Unpin for Verify
impl UnsafeUnpin for Verify
impl UnwindSafe for Verify
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more