fix(tui): update ui when push next or main finishes

Removes the artificial pause while we wait for any CI to start before
checking the CI status.

Closes 
This commit is contained in:
Paul Campbell 2024-09-06 15:36:17 +01:00
parent 35c2057f05
commit a1798be6a6
4 changed files with 28 additions and 7 deletions
crates/cli/src
repo/handlers
server/actor
tui/actor/handlers

View file

@ -1,7 +1,7 @@
//
use actix::prelude::*;
use git_next_core::RepoConfigSource;
use git_next_core::{git, RepoConfigSource};
use tracing::warn;
@ -35,18 +35,25 @@ impl Handler<AdvanceMain> for RepoActor {
commit: commit.clone(),
});
match advance_main(commit, &repo_details, &repo_config, &**open_repository) {
Err(err) => {
warn!("advance main: {err}");
if let Err(err) = advance_main(commit, &repo_details, &repo_config, &**open_repository) {
warn!("advance main: {err}");
self.alert_tui(format!("advance main: {err}"));
} else {
self.update_tui(RepoUpdate::MainUpdated);
if let Some(open_repository) = &self.open_repository {
match open_repository.fetch() {
Ok(()) => self.update_tui_log(git::graph::log(&self.repo_details)),
Err(err) => self.alert_tui(format!("fetching: {err}")),
}
}
Ok(()) => match repo_config.source() {
match repo_config.source() {
RepoConfigSource::Repo => {
do_send(&addr, LoadConfigFromRepo, self.log.as_ref());
}
RepoConfigSource::Server => {
do_send(&addr, ValidateRepo::new(message_token), self.log.as_ref());
}
},
}
}
}
}

View file

@ -1,6 +1,7 @@
//
use actix::prelude::*;
use git_next_core::git;
use tracing::{warn, Instrument};
use crate::{
@ -49,7 +50,12 @@ impl Handler<AdvanceNext> for RepoActor {
self.message_token,
) {
Ok(message_token) => {
// pause to allow any CI checks to be started
self.update_tui(RepoUpdate::NextUpdated);
match open_repository.fetch() {
Ok(()) => self.update_tui_log(git::graph::log(&self.repo_details)),
Err(err) => self.alert_tui(format!("fetching: {err}")),
}
// INFO: pause to allow any CI checks to be started
let sleep_duration = self.sleep_duration;
let log = self.log.clone();
async move {

View file

@ -92,6 +92,8 @@ pub enum RepoUpdate {
},
RegisteredWebhook,
Opened,
NextUpdated,
MainUpdated,
}
message!(

View file

@ -58,10 +58,16 @@ impl Handler<ServerUpdate> for Tui {
repo_state
.update_message(format!("advancing next to {commit}"), ACTING);
}
RepoUpdate::NextUpdated => {
repo_state.update_message("next updated - pause while CI starts", OKAY);
}
RepoUpdate::AdvancingMain { commit } => {
repo_state
.update_message(format!("advancing main to {commit}"), ACTING);
}
RepoUpdate::MainUpdated => {
repo_state.update_message("main updated", OKAY);
}
RepoUpdate::Opening => {
repo_state.update_message("opening...", PREP);
}