You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

run.rs 1.4 kB

5 months ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. use dora_tracing::set_up_tracing;
  2. use eyre::{Context, bail};
  3. use std::path::Path;
  4. #[tokio::main]
  5. async fn main() -> eyre::Result<()> {
  6. set_up_tracing("benchmark-runner").wrap_err("failed to set up tracing subscriber")?;
  7. let root = Path::new(env!("CARGO_MANIFEST_DIR"));
  8. std::env::set_current_dir(root.join(file!()).parent().unwrap())
  9. .wrap_err("failed to set working dir")?;
  10. let dataflow = Path::new("dataflow.yml");
  11. build_dataflow(dataflow).await?;
  12. run_dataflow(dataflow).await?;
  13. Ok(())
  14. }
  15. async fn build_dataflow(dataflow: &Path) -> eyre::Result<()> {
  16. let cargo = std::env::var("CARGO").unwrap();
  17. let mut cmd = tokio::process::Command::new(&cargo);
  18. cmd.arg("run");
  19. cmd.arg("--package").arg("dora-cli");
  20. cmd.arg("--release");
  21. cmd.arg("--").arg("build").arg(dataflow);
  22. if !cmd.status().await?.success() {
  23. bail!("failed to build dataflow");
  24. };
  25. Ok(())
  26. }
  27. async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
  28. let cargo = std::env::var("CARGO").unwrap();
  29. let mut cmd = tokio::process::Command::new(&cargo);
  30. cmd.arg("run");
  31. cmd.arg("--package").arg("dora-cli");
  32. cmd.arg("--release");
  33. cmd.arg("--")
  34. .arg("daemon")
  35. .arg("--run-dataflow")
  36. .arg(dataflow);
  37. if !cmd.status().await?.success() {
  38. bail!("failed to run dataflow");
  39. };
  40. Ok(())
  41. }