fix(tui): update ui when push next or main finishes
Some checks failed
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
Rust / build (push) Failing after 6m8s
ci/woodpecker/push/push-next Pipeline was successful

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:
Paul Campbell 2024-09-06 15:36:17 +01:00
parent 35c2057f05
commit a1798be6a6
4 changed files with 28 additions and 7 deletions

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);
}