Skip to content

Commit 5c4daf1

Browse files
Generate base commit in rustdoc_json tidy checks
1 parent 43d18cf commit 5c4daf1

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

src/build_helper/src/git.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ fn get_latest_upstream_commit_that_modified_files(
198198
/// author.
199199
///
200200
/// If we are in CI, we simply return our first parent.
201-
fn get_closest_upstream_commit(
201+
pub fn get_closest_upstream_commit(
202202
git_dir: Option<&Path>,
203203
config: &GitConfig<'_>,
204204
env: CiEnv,

src/tools/tidy/src/rustdoc_json.rs

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,31 @@
33
44
use std::process::Command;
55

6+
use build_helper::ci::CiEnv;
7+
use build_helper::git::{GitConfig, get_closest_upstream_commit};
8+
69
fn git_diff(base_commit: &str, extra_arg: &str) -> Option<String> {
710
let output = Command::new("git").arg("diff").arg(base_commit).arg(extra_arg).output().ok()?;
811
Some(String::from_utf8_lossy(&output.stdout).into())
912
}
1013

1114
pub fn check(bad: &mut bool) {
12-
let Ok(base_commit) = std::env::var("BASE_COMMIT") else {
13-
// Not in CI so nothing we can check here.
14-
println!("not checking rustdoc JSON `FORMAT_VERSION` update");
15-
return;
15+
let base_commit = match get_closest_upstream_commit(
16+
None,
17+
&GitConfig { nightly_branch: "", git_merge_commit_email: "[email protected]" },
18+
CiEnv::current(),
19+
) {
20+
Ok(Some(commit)) => commit,
21+
Ok(None) => {
22+
eprintln!("No base commit found, skipping rustdoc_json check");
23+
return;
24+
}
25+
Err(error) => {
26+
eprintln!(
27+
"Failed to retrieve base commit for rustdoc_json check because of `{error}`, skipping it"
28+
);
29+
return;
30+
}
1631
};
1732

1833
// First we check that `src/rustdoc-json-types` was modified.

0 commit comments

Comments
 (0)