git-next/crates/server/src/actors/repo/status.rs
Paul Campbell 4977619c70
All checks were successful
Rust / build (push) Successful in 1m35s
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
fix(server): don't use gix in server
2024-05-20 07:46:23 +01:00

30 lines
907 B
Rust

use actix::prelude::*;
use git_next_git as git;
use tracing::{info, warn};
use crate::{actors::repo::ValidateRepo, gitforge, types::MessageToken};
use super::AdvanceMainTo;
pub async fn check_next(
next: git::Commit,
addr: Addr<super::RepoActor>,
forge: gitforge::Forge,
message_token: MessageToken,
) {
// get the status - pass, fail, pending (all others map to fail, e.g. error)
let status = forge.commit_status(&next).await;
info!(?status, "Checking next branch");
match status {
gitforge::CommitStatus::Pass => {
addr.do_send(AdvanceMainTo(next));
}
gitforge::CommitStatus::Pending => {
tokio::time::sleep(tokio::time::Duration::from_secs(10)).await;
addr.do_send(ValidateRepo { message_token });
}
gitforge::CommitStatus::Fail => {
warn!("Checks have failed");
}
}
}