in torchci/lib/bot/triggerCircleCIWorkflows.ts [158:212]
function genCircleParametersForPush(
config: Config,
context: Context
): Params {
const {
default_params: parameters = {},
labels_to_circle_params: labelsToParams,
} = config;
context.log.info(
{ parameters },
"genCircleParametersForPush (default_params)"
);
const onTag: boolean = context.payload["ref"].startsWith("refs/tags");
const strippedRef: string = stripReference(context.payload["ref"]);
for (const label of Object.keys(labelsToParams)) {
context.log.info({ label }, "genParametersForPush");
const defaultTrueOn = labelsToParams[label].default_true_on;
if (!defaultTrueOn) {
context.log.info(
{ label },
"genParametersForPush (no default_true_on found)"
);
continue;
}
const refsToMatch = onTag ? "tags" : "branches";
context.log.info({ defaultTrueOn, refsToMatch, strippedRef });
for (const pattern of defaultTrueOn[refsToMatch] || []) {
context.log.info({ pattern }, "genParametersForPush");
if (strippedRef.match(pattern)) {
const { parameter } = labelsToParams[label];
if (parameter !== undefined) {
context.log.info(
{ parameter },
"genParametersForPush 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 },
"genParametersForPush (set_to_false) setting param to false"
);
parameters[param] = false;
}
}
}
}
}
return parameters;
}