From 1540e984279d25e5a83894216c3610990528b95c Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 17 Apr 2019 22:41:20 +0300 Subject: Add override options to bdep-ci Namely the options are: --override, --overrides-file, --builds and --build-email. --- bdep/ci.cxx | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'bdep/ci.cxx') diff --git a/bdep/ci.cxx b/bdep/ci.cxx index 08193b3..8c45a11 100644 --- a/bdep/ci.cxx +++ b/bdep/ci.cxx @@ -4,6 +4,10 @@ #include +#include + +#include + #include #include @@ -144,6 +148,29 @@ namespace bdep { tracer trace ("ci"); + // Create the default override. + // + vector overrides ({ + manifest_name_value {"build-email", "", // Name and value. + 0, 0, 0, 0, 0, 0, 0}}); // Locations, etc. + + // Validate and append the specified overrides. + // + if (o.overrides_specified ()) + try + { + bpkg::package_manifest::validate_overrides (o.overrides (), + "" /* name */); + + overrides.insert (overrides.end (), + o.overrides ().begin (), + o.overrides ().end ()); + } + catch (const manifest_parsing& e) + { + fail << "invalid overrides: " << e; + } + // If we are submitting the entire project, then we have two choices: we // can list all the packages in the project or we can only do so for // packages that were initialized in the (specified) configuration(s?). @@ -268,6 +295,21 @@ namespace bdep "package", p.name.string () + '/' + p.version.string ()}); + try + { + ostringstream os; + manifest_serializer s (os, "" /* name */); + serialize_manifest (s, overrides); + + params.push_back ({parameter::file_text, "overrides", os.str ()}); + } + catch (const manifest_serialization&) + { + // Values are verified by package_manifest::validate_overrides (); + // + assert (false); + } + if (o.simulate_specified ()) params.push_back ({parameter::text, "simulate", o.simulate ()}); -- cgit v1.1