Skip to content

Commit

Permalink
CI -> Distribution of Cleo.
Browse files Browse the repository at this point in the history
  • Loading branch information
mbfm committed Dec 15, 2023
1 parent 7a3770b commit 85780ab
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 95 deletions.
6 changes: 3 additions & 3 deletions .ci/xtask/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,9 @@ fn main() -> anyhow::Result<()> {
}
Task::Distribution { target } => {
for target in target.iter() {
packages::carl::distribution::carl(&target)?;
packages::edgar::distribution::edgar(&target)?;
//TODO distribution of cleo
packages::carl::distribution::carl_distribution(&target)?;
packages::edgar::distribution::edgar_distribution(&target)?;
packages::cleo::distribution::cleo_distribution(&target)?;
}
}
Task::Licenses { task } => tasks::licenses::LicensesTask::handle_task(task)?,
Expand Down
40 changes: 12 additions & 28 deletions .ci/xtask/src/packages/carl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ pub enum CarlTask {
},
}
impl CarlTask {
#[tracing::instrument]
pub fn handle_task(self) -> anyhow::Result<()> {
match self {
CarlTask::Build { target } => {
Expand All @@ -29,7 +28,7 @@ impl CarlTask {
},
CarlTask::Distribution { target } => {
for target in target.iter() {
distribution::carl(&target)?;
distribution::carl_distribution(&target)?;
}
},
};
Expand All @@ -52,7 +51,7 @@ pub mod distribution {
use super::*;

#[tracing::instrument]
pub fn carl(target: &Arch) -> anyhow::Result<()> {
pub fn carl_distribution(target: &Arch) -> anyhow::Result<()> {
use crate::tasks::distribution;

let distribution_out_dir = distribution::out_package_dir(PACKAGE, target);
Expand All @@ -63,23 +62,14 @@ pub mod distribution {

distribution::collect_executables(PACKAGE, target)?;

collect_carl_specific_files(&distribution_out_dir)?;
lea::get_lea(&distribution_out_dir)?;
licenses::get_licenses(target)?;

distribution::bundle_collected_files(PACKAGE, target)?;

Ok(())
}

#[tracing::instrument]
pub fn collect_carl_specific_files(out_dir: &PathBuf) -> anyhow::Result<()> {

lea::get_lea(out_dir)?;

licenses::get_licenses(out_dir)?;

Ok(())
}

mod lea {
use super::*;

Expand Down Expand Up @@ -110,18 +100,19 @@ pub mod distribution {
use serde_json::json;

#[tracing::instrument]
pub fn get_licenses(out_dir: &PathBuf) -> anyhow::Result<()> {
pub fn get_licenses(target: &Arch) -> anyhow::Result<()> {

generate_licenses()?;
let carl_licenses_file = out_file();
crate::tasks::distribution::licenses::get_licenses(PACKAGE, target)?;
let carl_licenses_file = crate::tasks::distribution::licenses::out_file(PACKAGE, target);

crate::packages::lea::licenses::generate_licenses()?;
let lea_licenses_file = crate::packages::lea::licenses::out_file();
crate::tasks::distribution::licenses::get_licenses(&Package::Lea, target)?;
let lea_licenses_file = crate::tasks::distribution::licenses::out_file(&Package::Lea, target);

crate::packages::edgar::licenses::generate_licenses()?;
let edgar_licenses_file = crate::packages::edgar::licenses::out_file();
crate::tasks::distribution::licenses::get_licenses(&Package::Edgar, target)?;
let edgar_licenses_file = crate::tasks::distribution::licenses::out_file(&Package::Edgar, target);


let out_dir = crate::tasks::distribution::out_package_dir(PACKAGE, target);
let licenses_dir = out_dir.join("licenses");
fs::create_dir_all(&licenses_dir)?;

Expand All @@ -143,12 +134,5 @@ pub mod distribution {

Ok(())
}

pub fn generate_licenses() -> anyhow::Result<()> {
crate::tasks::licenses::json::export_json(PACKAGE)
}
pub fn out_file() -> PathBuf {
crate::tasks::licenses::json::out_file(PACKAGE)
}
}
}
32 changes: 31 additions & 1 deletion .ci/xtask/src/packages/cleo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,24 @@ pub enum CleoTask {
#[arg(long, default_value_t)]
target: ArchSelection,
},
#[command(alias="dist")]
Distribution {
#[arg(long, default_value_t)]
target: ArchSelection,
},
}
impl CleoTask {
#[tracing::instrument]
pub fn handle_task(self) -> anyhow::Result<()> {
match self {
CleoTask::Build { target } => {
for target in target.iter() {
build::build_release(&target)?;
}
},
CleoTask::Distribution { target } => {
for target in target.iter() {
distribution::cleo_distribution(&target)?;
}
}
};
Ok(())
Expand All @@ -38,3 +47,24 @@ pub mod build {
crate::tasks::build::out_dir(PACKAGE, target)
}
}

pub mod distribution {
use super::*;

#[tracing::instrument]
pub fn cleo_distribution(target: &Arch) -> anyhow::Result<()> {
use crate::tasks::distribution;

distribution::clean(PACKAGE, target)?;

crate::tasks::build::build_release(PACKAGE, target)?;

distribution::collect_executables(PACKAGE, target)?;

distribution::licenses::get_licenses(PACKAGE, target)?;

distribution::bundle_collected_files(PACKAGE, target)?;

Ok(())
}
}
55 changes: 4 additions & 51 deletions .ci/xtask/src/packages/edgar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ pub enum EdgarTask {
},
}
impl EdgarTask {
#[tracing::instrument]
pub fn handle_task(self) -> anyhow::Result<()> {
match self {
EdgarTask::Build { target } => {
Expand All @@ -36,7 +35,7 @@ impl EdgarTask {
}
EdgarTask::Distribution { target } => {
for target in target.iter() {
distribution::edgar(&target)?;
distribution::edgar_distribution(&target)?;
}
}
EdgarTask::GetNetbirdClientArtifact { target } => {
Expand Down Expand Up @@ -65,7 +64,7 @@ pub mod distribution {
use super::*;

#[tracing::instrument]
pub fn edgar(target: &Arch) -> anyhow::Result<()> {
pub fn edgar_distribution(target: &Arch) -> anyhow::Result<()> {
use crate::tasks::distribution;

distribution::clean(PACKAGE, target)?;
Expand All @@ -74,20 +73,10 @@ pub mod distribution {

distribution::collect_executables(PACKAGE, target)?;

collect_edgar_specific_files(target)?;

distribution::bundle_collected_files(PACKAGE, target)?;

Ok(())
}


#[tracing::instrument]
fn collect_edgar_specific_files(target: &Arch) -> anyhow::Result<()> {

netbird::get_netbird_client_artifact(target)?;
distribution::licenses::get_licenses(PACKAGE, target)?;

licenses::get_licenses(target)?;
distribution::bundle_collected_files(PACKAGE, target)?;

Ok(())
}
Expand Down Expand Up @@ -149,40 +138,4 @@ pub mod distribution {
crate::tasks::distribution::out_package_dir(package, target).join("install").join("netbird.tar.gz")
}
}

pub mod licenses {
use super::*;

#[tracing::instrument]
pub fn get_licenses(target: &Arch) -> anyhow::Result<()> {

crate::packages::edgar::licenses::generate_licenses()?;
let licenses_file = crate::packages::edgar::licenses::out_file();

let out_dir = out_dir(target);
let licenses_file_name = format!("{}.licenses.json", PACKAGE.ident());
fs::create_dir_all(&out_dir)?;

fs::copy(
licenses_file,
out_dir.join(licenses_file_name)
)?;

Ok(())
}
fn out_dir(target: &Arch) -> PathBuf {
crate::tasks::distribution::out_package_dir(PACKAGE, target).join("licenses")
}
}
}

pub mod licenses {
use super::*;

pub fn generate_licenses() -> anyhow::Result<()> {
crate::tasks::licenses::json::export_json(PACKAGE)
}
pub fn out_file() -> PathBuf {
crate::tasks::licenses::json::out_file(PACKAGE)
}
}
12 changes: 0 additions & 12 deletions .ci/xtask/src/packages/lea.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ pub enum LeaTask {
Watch,
}
impl LeaTask {
#[tracing::instrument]
pub fn handle_task(self) -> anyhow::Result<()> {
match self {
LeaTask::Build => build::build_release()?,
Expand Down Expand Up @@ -50,17 +49,6 @@ pub mod build {
}
}

pub mod licenses {
use super::*;

pub fn generate_licenses() -> anyhow::Result<()> {
crate::tasks::licenses::json::export_json(PACKAGE)
}
pub fn out_file() -> PathBuf {
crate::tasks::licenses::json::out_file(PACKAGE)
}
}

pub mod watch {
use super::*;

Expand Down
22 changes: 22 additions & 0 deletions .ci/xtask/src/tasks/distribution.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,28 @@ pub fn bundle_collected_files(package: &Package, target: &Arch) -> anyhow::Resul
Ok(())
}

pub mod licenses {
use super::*;

#[tracing::instrument]
pub fn get_licenses(package: &Package, target: &Arch) -> anyhow::Result<()> {

crate::tasks::licenses::json::export_json(package)?;
let licenses_file = crate::tasks::licenses::json::out_file(package);

let out_dir = out_file(package, target);
fs::create_dir_all(&out_dir.parent().unwrap())?;

fs::copy(licenses_file, out_dir)?;

Ok(())
}
pub fn out_file(package: &Package, target: &Arch) -> PathBuf {
let licenses_file_name = format!("{}.licenses.json", package.ident());
out_package_dir(package, target).join("licenses").join(licenses_file_name)
}
}

pub fn out_dir() -> PathBuf {
constants::target_dir().join("distribution")
}
Expand Down

0 comments on commit 85780ab

Please sign in to comment.