CI: diff with main and HEAD^ (#945)
This commit is contained in:
parent
162de0ceaf
commit
55e220f0e8
@ -10,7 +10,7 @@ if [[ -z "${RUN_ON_CI}" ]]; then
|
||||
backtrace_fuzzers=$(find ./fuzzers/backtrace_baby_fuzzers -mindepth 1 -maxdepth 1 -type d)
|
||||
else
|
||||
cargo build -p build_and_test_fuzzers
|
||||
fuzzers=$(cargo run -p build_and_test_fuzzers -- remotes/origin/main)
|
||||
fuzzers=$(cargo run -p build_and_test_fuzzers -- "remotes/origin/main" "HEAD^")
|
||||
backtrace_fuzzers=""
|
||||
fi
|
||||
|
||||
|
@ -20,17 +20,24 @@ pub fn run_git_diff(args: &[&str]) -> String {
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn get_diffing_files(commit_name: &str) -> Vec<PathBuf> {
|
||||
let args = vec!["--name-only", commit_name];
|
||||
let diff = run_git_diff(&args);
|
||||
diff.lines()
|
||||
.map(PathBuf::from)
|
||||
.filter(|x| x.is_file())
|
||||
.collect()
|
||||
pub fn get_diffing_files(commits: &[String]) -> HashSet<PathBuf> {
|
||||
let mut files = HashSet::<PathBuf>::default();
|
||||
for commit_name in commits {
|
||||
let args = vec!["--name-only", commit_name];
|
||||
for file in run_git_diff(&args)
|
||||
.lines()
|
||||
.map(PathBuf::from)
|
||||
.filter(|x| x.is_file())
|
||||
{
|
||||
files.insert(file);
|
||||
}
|
||||
}
|
||||
files
|
||||
}
|
||||
|
||||
#[allow(clippy::implicit_hasher)]
|
||||
#[must_use]
|
||||
pub fn get_diffing_crates(diffing_files: &[PathBuf]) -> HashSet<PathBuf> {
|
||||
pub fn get_diffing_crates(diffing_files: &HashSet<PathBuf>) -> HashSet<PathBuf> {
|
||||
// TODO maybe consider using a combination of this and https://docs.rs/cargo/0.28.0/cargo/sources/path/struct.PathSource.html
|
||||
let mut crates = HashSet::default();
|
||||
for file in diffing_files {
|
||||
|
@ -5,13 +5,13 @@ pub use diffing::*;
|
||||
|
||||
fn main() {
|
||||
let args: Vec<String> = env::args().collect();
|
||||
let commit = if args.len() > 1 {
|
||||
&args[1]
|
||||
let commits = if args.len() > 1 {
|
||||
args[1..].to_vec()
|
||||
} else {
|
||||
"origin/main"
|
||||
vec!["origin/main".into()]
|
||||
};
|
||||
|
||||
let files = get_diffing_files(commit);
|
||||
let files = get_diffing_files(&commits);
|
||||
let mut diff_crates = get_diffing_crates(&files);
|
||||
let all_crates = find_all_crates();
|
||||
extend_diffing_crates_with_deps(&mut diff_crates, &all_crates);
|
||||
|
Loading…
x
Reference in New Issue
Block a user