test: add more debug tracing
All checks were successful
Rust / build (push) Successful in 1m28s
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/cron/cron-docker-builder Pipeline was successful
ci/woodpecker/cron/push-next Pipeline was successful
ci/woodpecker/cron/tag-created Pipeline was successful
All checks were successful
Rust / build (push) Successful in 1m28s
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/cron/cron-docker-builder Pipeline was successful
ci/woodpecker/cron/push-next Pipeline was successful
ci/woodpecker/cron/tag-created Pipeline was successful
This commit is contained in:
parent
73ab149aba
commit
40c61fa9ff
3 changed files with 15 additions and 4 deletions
|
@ -12,7 +12,7 @@ pub struct Positions {
|
||||||
pub dev_commit_history: Vec<git::Commit>,
|
pub dev_commit_history: Vec<git::Commit>,
|
||||||
}
|
}
|
||||||
|
|
||||||
// #[allow(clippy::cognitive_complexity)] // TODO: (#83) reduce complexity
|
#[allow(clippy::cognitive_complexity)] // TODO: (#83) reduce complexity
|
||||||
pub fn validate_positions(
|
pub fn validate_positions(
|
||||||
open_repository: &dyn git::repository::OpenRepositoryLike,
|
open_repository: &dyn git::repository::OpenRepositoryLike,
|
||||||
repo_details: &git::RepoDetails,
|
repo_details: &git::RepoDetails,
|
||||||
|
@ -21,23 +21,29 @@ pub fn validate_positions(
|
||||||
let main_branch = repo_config.branches().main();
|
let main_branch = repo_config.branches().main();
|
||||||
let next_branch = repo_config.branches().next();
|
let next_branch = repo_config.branches().next();
|
||||||
let dev_branch = repo_config.branches().dev();
|
let dev_branch = repo_config.branches().dev();
|
||||||
|
tracing::debug!(%main_branch, %next_branch, %dev_branch, "branches");
|
||||||
// Collect Commit Histories for `main`, `next` and `dev` branches
|
// Collect Commit Histories for `main`, `next` and `dev` branches
|
||||||
open_repository.fetch()?;
|
open_repository.fetch()?;
|
||||||
|
tracing::debug!("fetch okay");
|
||||||
let commit_histories = get_commit_histories(open_repository, &repo_config)?;
|
let commit_histories = get_commit_histories(open_repository, &repo_config)?;
|
||||||
|
tracing::debug!(?commit_histories, "get commit histories okay");
|
||||||
// branch tips
|
// branch tips
|
||||||
let main =
|
let main =
|
||||||
commit_histories.main.first().cloned().ok_or_else(|| {
|
commit_histories.main.first().cloned().ok_or_else(|| {
|
||||||
Error::NonRetryable(format!("Branch has no commits: {}", main_branch))
|
Error::NonRetryable(format!("Branch has no commits: {}", main_branch))
|
||||||
})?;
|
})?;
|
||||||
|
tracing::debug!("main branch okay");
|
||||||
let next =
|
let next =
|
||||||
commit_histories.next.first().cloned().ok_or_else(|| {
|
commit_histories.next.first().cloned().ok_or_else(|| {
|
||||||
Error::NonRetryable(format!("Branch has no commits: {}", next_branch))
|
Error::NonRetryable(format!("Branch has no commits: {}", next_branch))
|
||||||
})?;
|
})?;
|
||||||
|
tracing::debug!("next branch okay");
|
||||||
let dev = commit_histories
|
let dev = commit_histories
|
||||||
.dev
|
.dev
|
||||||
.first()
|
.first()
|
||||||
.cloned()
|
.cloned()
|
||||||
.ok_or_else(|| Error::NonRetryable(format!("Branch has no commits: {}", dev_branch)))?;
|
.ok_or_else(|| Error::NonRetryable(format!("Branch has no commits: {}", dev_branch)))?;
|
||||||
|
tracing::debug!("dev branch okay");
|
||||||
// Validations:
|
// Validations:
|
||||||
// Dev must be on main branch, else the USER must rebase it
|
// Dev must be on main branch, else the USER must rebase it
|
||||||
if is_not_based_on(&commit_histories.dev, &main) {
|
if is_not_based_on(&commit_histories.dev, &main) {
|
||||||
|
@ -47,6 +53,7 @@ pub fn validate_positions(
|
||||||
dev_branch, main_branch
|
dev_branch, main_branch
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
|
tracing::debug!("dev based on main okay");
|
||||||
// verify that next is on main or at most one commit on top of main, else reset it back to main
|
// verify that next is on main or at most one commit on top of main, else reset it back to main
|
||||||
if is_not_based_on(
|
if is_not_based_on(
|
||||||
commit_histories
|
commit_histories
|
||||||
|
@ -61,11 +68,13 @@ pub fn validate_positions(
|
||||||
tracing::info!("Main not on same commit as next, or it's parent - resetting next to main",);
|
tracing::info!("Main not on same commit as next, or it's parent - resetting next to main",);
|
||||||
return reset_next_to_main(open_repository, repo_details, &main, &next, &next_branch);
|
return reset_next_to_main(open_repository, repo_details, &main, &next, &next_branch);
|
||||||
}
|
}
|
||||||
|
tracing::debug!("next on or near main okay");
|
||||||
// verify that next is an ancestor of dev, else reset it back to main
|
// verify that next is an ancestor of dev, else reset it back to main
|
||||||
if is_not_based_on(&commit_histories.dev, &next) {
|
if is_not_based_on(&commit_histories.dev, &next) {
|
||||||
tracing::info!("Next is not an ancestor of dev - resetting next to main");
|
tracing::info!("Next is not an ancestor of dev - resetting next to main");
|
||||||
return reset_next_to_main(open_repository, repo_details, &main, &next, &next_branch);
|
return reset_next_to_main(open_repository, repo_details, &main, &next, &next_branch);
|
||||||
}
|
}
|
||||||
|
tracing::debug!("dev based on next okay");
|
||||||
|
|
||||||
Ok(git::validation::positions::Positions {
|
Ok(git::validation::positions::Positions {
|
||||||
main,
|
main,
|
||||||
|
|
|
@ -59,6 +59,7 @@ impl Handler<actor::messages::ValidateRepo> for actor::RepoActor {
|
||||||
dev,
|
dev,
|
||||||
dev_commit_history,
|
dev_commit_history,
|
||||||
}) => {
|
}) => {
|
||||||
|
tracing::debug!(%main, %next, %dev, "positions");
|
||||||
if next != main {
|
if next != main {
|
||||||
actor::do_send(
|
actor::do_send(
|
||||||
ctx.address(),
|
ctx.address(),
|
||||||
|
|
|
@ -5,7 +5,7 @@ use actix::prelude::*;
|
||||||
use derive_more::Constructor;
|
use derive_more::Constructor;
|
||||||
use git_next_config::{ForgeAlias, RepoAlias};
|
use git_next_config::{ForgeAlias, RepoAlias};
|
||||||
use git_next_repo_actor::messages::WebhookNotification;
|
use git_next_repo_actor::messages::WebhookNotification;
|
||||||
use tracing::{debug, info};
|
use tracing::info;
|
||||||
|
|
||||||
pub struct WebhookRouter {
|
pub struct WebhookRouter {
|
||||||
span: tracing::Span,
|
span: tracing::Span,
|
||||||
|
@ -36,14 +36,15 @@ impl Handler<WebhookNotification> for WebhookRouter {
|
||||||
let _gaurd = self.span.enter();
|
let _gaurd = self.span.enter();
|
||||||
let forge_alias = msg.forge_alias();
|
let forge_alias = msg.forge_alias();
|
||||||
let repo_alias = msg.repo_alias();
|
let repo_alias = msg.repo_alias();
|
||||||
debug!(forge = %forge_alias, repo = %repo_alias, "Router...");
|
tracing::debug!(forge = %forge_alias, repo = %repo_alias, "Router...");
|
||||||
let Some(forge_repos) = self.recipients.get(forge_alias) else {
|
let Some(forge_repos) = self.recipients.get(forge_alias) else {
|
||||||
|
tracing::warn!(forge = %forge_alias, "No forge repos found");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
let Some(recipient) = forge_repos.get(repo_alias) else {
|
let Some(recipient) = forge_repos.get(repo_alias) else {
|
||||||
|
tracing::debug!(forge = %forge_alias, repo = %repo_alias, "No recipient found");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
info!(repo = %repo_alias, "Sending to Recipient");
|
|
||||||
recipient.do_send(msg);
|
recipient.do_send(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue