mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-11-29 06:54:33 +01:00
start with a clean ci/builds always
This commit is contained in:
parent
7ce4391e4e
commit
7f45254e39
2 changed files with 24 additions and 6 deletions
|
@ -1,7 +1,22 @@
|
||||||
use std::path::PathBuf;
|
use std::{
|
||||||
|
fs,
|
||||||
|
path::{Path, PathBuf},
|
||||||
|
};
|
||||||
|
|
||||||
use crate::{command::BuildMode, TestRunError};
|
use crate::{command::BuildMode, TestRunError};
|
||||||
|
|
||||||
|
const HEX_BUILD_ROOT: &str = "ci/builds";
|
||||||
|
|
||||||
|
/// make sure we're starting with a clean,but existing slate
|
||||||
|
pub fn init_build_dir() -> anyhow::Result<()> {
|
||||||
|
if Path::new(HEX_BUILD_ROOT).exists() {
|
||||||
|
fs::remove_dir_all(HEX_BUILD_ROOT)
|
||||||
|
.map_err(|_| anyhow::anyhow!("Could not clear out directory: {}", HEX_BUILD_ROOT))?;
|
||||||
|
}
|
||||||
|
fs::create_dir_all(HEX_BUILD_ROOT)
|
||||||
|
.map_err(|_| anyhow::anyhow!("Could not create directory: {}", HEX_BUILD_ROOT))
|
||||||
|
}
|
||||||
|
|
||||||
pub fn build_hexpath(
|
pub fn build_hexpath(
|
||||||
example: &str,
|
example: &str,
|
||||||
features: Option<&str>,
|
features: Option<&str>,
|
||||||
|
@ -14,10 +29,11 @@ pub fn build_hexpath(
|
||||||
};
|
};
|
||||||
|
|
||||||
let filename = format!("{}_{}_{}_{}.hex", example, features, build_mode, build_num);
|
let filename = format!("{}_{}_{}_{}.hex", example, features, build_mode, build_num);
|
||||||
["ci", "builds", &filename]
|
|
||||||
.iter()
|
let mut path = PathBuf::from(HEX_BUILD_ROOT);
|
||||||
.collect::<PathBuf>()
|
path.push(filename);
|
||||||
.into_os_string()
|
|
||||||
|
path.into_os_string()
|
||||||
.into_string()
|
.into_string()
|
||||||
.map_err(|e| anyhow::Error::new(TestRunError::PathConversionError(e)))
|
.map_err(|e| anyhow::Error::new(TestRunError::PathConversionError(e)))
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ use std::{
|
||||||
use structopt::StructOpt;
|
use structopt::StructOpt;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
build::{build_hexpath, compare_builds},
|
build::{build_hexpath, compare_builds, init_build_dir},
|
||||||
command::{run_command, run_successful, BuildMode, CargoCommand},
|
command::{run_command, run_successful, BuildMode, CargoCommand},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -98,6 +98,8 @@ fn main() -> anyhow::Result<()> {
|
||||||
let opts = Options::from_args();
|
let opts = Options::from_args();
|
||||||
let target = &opts.target;
|
let target = &opts.target;
|
||||||
|
|
||||||
|
init_build_dir()?;
|
||||||
|
|
||||||
if target == "all" {
|
if target == "all" {
|
||||||
for t in targets {
|
for t in targets {
|
||||||
run_test(t, examples)?;
|
run_test(t, examples)?;
|
||||||
|
|
Loading…
Reference in a new issue