aboutsummaryrefslogtreecommitdiff
path: root/bdep/ci.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-04-19 20:58:08 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-04-19 20:58:08 +0300
commit168811dcad9900fc1961514da91158f422f3c71e (patch)
tree20bda4fa159e71b9d71357df9c2b4131704817a0 /bdep/ci.cxx
parent93c3a46eecba45214731a81a302445c55d4147b4 (diff)
Add support for build-bot manifest value overrides in bdep-ci
Diffstat (limited to 'bdep/ci.cxx')
-rw-r--r--bdep/ci.cxx61
1 files changed, 42 insertions, 19 deletions
diff --git a/bdep/ci.cxx b/bdep/ci.cxx
index f97f0cb..9909a3a 100644
--- a/bdep/ci.cxx
+++ b/bdep/ci.cxx
@@ -242,18 +242,18 @@ namespace bdep
// True if the name is one of {*-builds, *-build-{include,exclude}}.
//
- bool pco ((n.size () > 7 &&
+ bool cbo ((n.size () > 7 &&
n.compare (n.size () - 7, 7, "-builds") == 0) ||
(n.size () > 14 &&
n.compare (n.size () - 14, 14, "-build-include") == 0) ||
(n.size () > 14 &&
n.compare (n.size () - 14, 14, "-build-exclude") == 0));
- if (pco)
+ if (cbo)
pkg_config_ovr = true;
if (co != nullptr &&
- (pco ||
+ (cbo ||
n == "builds" ||
n == "build-include" ||
n == "build-exclude"))
@@ -264,21 +264,30 @@ namespace bdep
info << "override: " << n << ": " << nv.value;
}
- bool eo (
- (n == "build-email" ||
- n == "build-warning-email" ||
- n == "build-error-email" ||
- (n.size () > 12 &&
- n.compare (n.size () - 12, 12, "-build-email") == 0) ||
- (n.size () > 20 &&
- n.compare (n.size () - 20, 20, "-build-warning-email") == 0) ||
- (n.size () > 18 &&
- n.compare (n.size () - 18, 18, "-build-error-email") == 0)));
-
- if (eo)
- build_email_ovr = true;
-
- if (!pco && !eo)
+ // Check if the name is one of {[*-]build-*email}.
+ //
+ if (!cbo)
+ {
+ bool ceo (
+ (n.size () > 12 &&
+ n.compare (n.size () - 12, 12, "-build-email") == 0) ||
+ (n.size () > 20 &&
+ n.compare (n.size () - 20, 20, "-build-warning-email") == 0) ||
+ (n.size () > 18 &&
+ n.compare (n.size () - 18, 18, "-build-error-email") == 0));
+
+ if (ceo)
+ pkg_config_ovr = true;
+
+ build_email_ovr = (ceo ||
+ n == "build-email" ||
+ n == "build-warning-email" ||
+ n == "build-error-email");
+ }
+
+ // Check if the name is one of {[*-]build-auxiliary[-*]}.
+ //
+ if (!cbo && !build_email_ovr)
{
if (optional<pair<string, string>> an =
bpkg::build_auxiliary::parse_value_name (n))
@@ -289,6 +298,15 @@ namespace bdep
pkg_config_ovr = true;
}
}
+
+ // Check if the name is one of {*-build-bot}.
+ //
+ if (!cbo && !build_email_ovr && !aux_ovr)
+ {
+ if (n.size () > 10 &&
+ n.compare (n.size () - 10, 10, "-build-bot") == 0)
+ pkg_config_ovr = true;
+ }
}
overrides.insert (overrides.end (),
@@ -816,7 +834,12 @@ namespace bdep
diag_record dr (fail);
dr << "invalid " << to_string (static_cast<origin> (e.line))
<< ": " << e.description <<
- info << "override: " << nv.name << ": " << nv.value;
+ info << "override: " << nv.name << ':';
+
+ if (nv.value.find ('\n') == string::npos)
+ dr << ' ' << nv.value;
+ else
+ dr << "\n\\\n" << nv.value << "\n\\";
if (!n.empty () && override_manifests.size () != 1)
dr << info << "package: " << n;