Build server prototype (integration with GitHub / NuGet / etc)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
micro-build-server/BuildServer/lib/tasks/conditional.ts

19 lines
689 B

"use strict";
import { GenericTask, TaskInfo } from "../types";
import noop from "./noop";
interface IParameters {
readonly owner?: string;
readonly branch?: string;
readonly task: TaskInfo;
readonly otherwise?: TaskInfo;
}
export default ((params) => (processor) => {
const condition = (!params.owner || params.owner === processor.context.owner)
&& (!params.branch || params.branch === processor.context.branch || `refs/heads/${params.branch}` === processor.context.branch);
const task = (condition && params.task) || params.otherwise;
return () => processor.processTask(task || { task: noop({}) }, processor.done);
}) as GenericTask<IParameters>;