mirror of
https://github.com/AleoHQ/leo.git
synced 2024-11-10 18:22:19 +03:00
wait times between nested deployments
This commit is contained in:
parent
1a4b07530b
commit
d97387ba52
@ -18,6 +18,7 @@ use super::*;
|
|||||||
use snarkos_cli::commands::{Deploy as SnarkOSDeploy, Developer};
|
use snarkos_cli::commands::{Deploy as SnarkOSDeploy, Developer};
|
||||||
use snarkvm::cli::helpers::dotenv_private_key;
|
use snarkvm::cli::helpers::dotenv_private_key;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
use tracing_subscriber::fmt::time;
|
||||||
|
|
||||||
/// Deploys an Aleo program.
|
/// Deploys an Aleo program.
|
||||||
#[derive(Parser, Debug)]
|
#[derive(Parser, Debug)]
|
||||||
@ -32,6 +33,10 @@ pub struct Deploy {
|
|||||||
pub(crate) private_key: Option<String>,
|
pub(crate) private_key: Option<String>,
|
||||||
#[clap(long, help = "Disables building of the project before deployment", default_value = "false")]
|
#[clap(long, help = "Disables building of the project before deployment", default_value = "false")]
|
||||||
pub(crate) no_build: bool,
|
pub(crate) no_build: bool,
|
||||||
|
#[clap(long, help = "Disables recursive deployment of dependencies", default_value = "false")]
|
||||||
|
pub(crate) non_recursive: bool,
|
||||||
|
#[clap(long, help = "Custom wait gap between consecutive deployments", default_value = "12")]
|
||||||
|
pub(crate) wait_gap: u64,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Command for Deploy {
|
impl Command for Deploy {
|
||||||
@ -60,13 +65,17 @@ impl Command for Deploy {
|
|||||||
Some(dotenv_private_key().map_err(CliError::failed_to_read_environment_private_key)?.to_string());
|
Some(dotenv_private_key().map_err(CliError::failed_to_read_environment_private_key)?.to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let mut all_paths: Vec<(String, PathBuf)> = Vec::new();
|
||||||
|
|
||||||
// Extract post-ordered list of local dependencies' paths from `leo.lock`
|
// Extract post-ordered list of local dependencies' paths from `leo.lock`
|
||||||
let mut all_paths: Vec<(String, PathBuf)> = context.local_dependency_paths()?;
|
if !self.non_recursive {
|
||||||
|
all_paths = context.local_dependency_paths()?;
|
||||||
|
}
|
||||||
|
|
||||||
// Add the parent program to be deployed last
|
// Add the parent program to be deployed last
|
||||||
all_paths.push((project_name, context.dir()?.join("build")));
|
all_paths.push((project_name, context.dir()?.join("build")));
|
||||||
|
|
||||||
for (name, path) in all_paths {
|
for (index, (name, path)) in all_paths.iter().enumerate() {
|
||||||
// Set deploy arguments
|
// Set deploy arguments
|
||||||
let deploy = SnarkOSDeploy::try_parse_from([
|
let deploy = SnarkOSDeploy::try_parse_from([
|
||||||
"snarkos",
|
"snarkos",
|
||||||
@ -84,10 +93,14 @@ impl Command for Deploy {
|
|||||||
])
|
])
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
dbg!(&deploy); // TODO: remove
|
|
||||||
|
|
||||||
// Deploy program
|
// Deploy program
|
||||||
Developer::Deploy(deploy).parse().map_err(CliError::failed_to_execute_deploy)?;
|
Developer::Deploy(deploy).parse().map_err(CliError::failed_to_execute_deploy)?;
|
||||||
|
|
||||||
|
// Sleep for `wait_gap` seconds.
|
||||||
|
// This helps avoid parents from being serialized before children.
|
||||||
|
if index < all_paths.len() - 1 {
|
||||||
|
std::thread::sleep(std::time::Duration::from_secs(self.wait_gap));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
Loading…
Reference in New Issue
Block a user