in torchci/lib/bot/triggerCircleCIWorkflows.ts [114:156]
export function genCircleParametersForPR(
config: Config,
context: Context,
appliedLabels: string[]
): Params {
context.log.info({ config, appliedLabels }, "genParametersForPR");
const {
default_params: parameters = {},
labels_to_circle_params: labelsToParams,
} = config;
context.log.info({ parameters }, "genCircleParametersForPR (default_params)");
for (const label of Object.keys(labelsToParams)) {
const defaultTrueOn = labelsToParams[label].default_true_on || {};
if (
appliedLabels.includes(label) ||
(defaultTrueOn.pull_request !== undefined &&
!appliedLabels.includes(invert(label)))
) {
const { parameter } = labelsToParams[label];
if (parameter !== undefined) {
context.log.info(
{ parameter },
"genCircleParametersForPR setting parameter to true"
);
parameters[parameter] = true;
}
if (labelsToParams[label].set_to_false) {
const falseParams = labelsToParams[label].set_to_false;
// There's potential for labels to override each other which we should
// probably be careful of
for (const falseLabel of Object.keys(falseParams)) {
const param = falseParams[falseLabel];
context.log.info(
{ param },
"genCircleParametersForPR (set_to_false) setting param to false"
);
parameters[param] = false;
}
}
}
}
return parameters;
}