WIP: 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 kemitix/git-next#160
This commit is contained in:
parent
35c2057f05
commit
42f2a20da6
5 changed files with 30 additions and 10 deletions
|
@ -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) => {
|
||||
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());
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -92,6 +92,8 @@ pub enum RepoUpdate {
|
|||
},
|
||||
RegisteredWebhook,
|
||||
Opened,
|
||||
NextUpdated,
|
||||
MainUpdated,
|
||||
}
|
||||
|
||||
message!(
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -277,9 +277,8 @@ impl RepoState {
|
|||
|
||||
#[tracing::instrument]
|
||||
pub fn clear_alert(&mut self) {
|
||||
match self {
|
||||
Self::Identified { .. } | Self::Configured { .. } => (),
|
||||
Self::Ready { alert, .. } => *alert = None,
|
||||
if let Self::Ready { alert, .. } = self {
|
||||
*alert = None;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue