Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
3d552ee
test(cli): lock down the current summary output
dfrankland Oct 21, 2026
5976f94
test(cli): move the summary tests into cli/tests
dfrankland Oct 21, 2026
b4f7209
refactor(cli): build the upload summary as data, separate from rendering
dfrankland Oct 21, 2026
0a5c5c0
refactor(cli): rename the report module to summary_output
dfrankland Oct 28, 2026
c103d2a
refactor(cli): fold failure groups, name the command, and split failu…
dfrankland Oct 28, 2026
024bef3
test(api): set the split failure fields in the v2 client tests
dfrankland Oct 28, 2026
5c42fea
refactor(cli): build the validate summary as data, separate from rend…
dfrankland Oct 23, 2026
a408da5
refactor(cli): use the summary_output module path in validate_command
dfrankland Oct 28, 2026
b9eef07
feat(cli): add --summary-output-file to upload and test
dfrankland Oct 22, 2026
7ee6db7
feat(cli): add summary-output-schema to print the summary's JSON Schema
dfrankland Oct 22, 2026
256b640
feat(rspec): write the summary to TRUNK_SUMMARY_OUTPUT_FILE
dfrankland Oct 23, 2026
a234edb
feat(cli): say in the summary whether it was a dry run
dfrankland Oct 23, 2026
7b182b6
feat(cli): report the quarantining status and uppercase enum values
dfrankland Oct 23, 2026
ad00eed
test(cli): cover the command and failure text in the JSON summary
dfrankland Oct 28, 2026
d3aa7ef
refactor(cli): define each exit code in one place, with its documenta…
dfrankland Oct 24, 2026
3dea134
refactor(cli): read the exit code docs with strum instead of a macro
dfrankland Oct 24, 2026
46db108
fix(cli): say when no tests were found but the exit code isn't 0
dfrankland Oct 23, 2026
3a90760
feat(cli): add a hidden github-annotations command
dfrankland Oct 27, 2026
0b056b4
refactor(cli): make the summary's JSON helpers methods, and read newe…
dfrankland Oct 28, 2026
8616a00
Merging 0b056b4eaba3e190e875057251963c71eb50c855 into trunk-temp/pr-1…
trunk-io[bot] Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 65 additions & 13 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions api/src/urls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,8 @@ mod tests {
timestamp_millis: None,
is_quarantined: false,
failure_message: None,
failure_message_attribute: None,
failure_text: None,
variant: None,
}
}
Expand Down
2 changes: 2 additions & 0 deletions api/tests/v2_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,8 @@ fn failure(index: usize) -> Test {
timestamp_millis: None,
is_quarantined: false,
failure_message: None,
failure_message_attribute: None,
failure_text: None,
variant: None,
}
}
Expand Down
11 changes: 11 additions & 0 deletions bundle/src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,14 @@ pub struct Test {
/// Added in v0.6.9
pub timestamp_millis: Option<i64>,
pub is_quarantined: bool,
/// What's uploaded: the failure's text, else its `message` attribute.
pub failure_message: Option<String>,
/// The failure's `message` attribute, kept apart for the CLI's summary. Not uploaded.
#[serde(skip)]
pub failure_message_attribute: Option<String>,
/// The failure's text, usually a stack trace, kept apart for the CLI's summary. Not uploaded.
#[serde(skip)]
pub failure_text: Option<String>,
pub variant: Option<String>,
}

Expand All @@ -49,6 +56,8 @@ impl Test {
timestamp_millis,
is_quarantined: false,
failure_message: None,
failure_message_attribute: None,
failure_text: None,
variant: Some(variant.to_string()),
};

Expand Down Expand Up @@ -198,6 +207,8 @@ mod tests {
timestamp_millis: Some(0),
is_quarantined: false,
failure_message: None,
failure_message_attribute: None,
failure_text: None,
variant: Some(String::new()),
};
assert_eq!(result.name, name);
Expand Down
4 changes: 3 additions & 1 deletion cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ context = { path = "../context", features = ["bindings"] }
third-party = { path = "../third-party" }
display = { path = "../display" }
log = "0.4.14"
exitcode = "1.1.1"
gix = { version = "0.74.0", default-features = false, features = [
], optional = true }
http = "1.1.0"
Expand All @@ -50,7 +49,10 @@ sentry-tracing = "0.36.0"
openssl = { version = "0.10.78", features = ["vendored"] }
openssl-src = { version = "=300.3.1", optional = true }
quick-junit = "0.5.0"
schemars = "1.2"
serde = { version = "1.0.215", features = ["derive"] }
serde_json = "1.0"
strum = { version = "0.27", features = ["derive"] }
clap-verbosity-flag = "3.0.2"
proto = { path = "../proto" }
regex = "1.11.1"
Expand Down
3 changes: 2 additions & 1 deletion cli/src/context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ use xcresult::test_locations::{Limits, TestKey, TestLocationIndex};
use xcresult::xcresult::XCResult;

use crate::error_report::InterruptingError;
use crate::exit_code::ExitCode;
use crate::{
context_quarantine::{
FailedTestsExtractor, QuarantineContext, QuarantineFetchStatus, gather_quarantine_context,
Expand Down Expand Up @@ -811,7 +812,7 @@ pub async fn gather_exit_code_and_quarantined_tests_context(
disable_quarantining: bool,
api_client: &ApiClient,
file_set_builder: &FileSetBuilder,
default_exit_code: Option<i32>,
default_exit_code: Option<ExitCode>,
test_collection_short_id: Option<String>,
hide_test_collection_links: bool,
) -> anyhow::Result<QuarantineContext> {
Expand Down
Loading
Loading