blob: 1c10c643f0eaa8c4c86c22701f3e6520e5900aed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import { isObject } from '@emprespresso/pengueno';
import { isJob, Job } from '@emprespresso/ci_model';
export interface PipelineStage {
readonly parallelJobs: Array<Job>;
}
export const isPipelineStage = (t: unknown): t is PipelineStage =>
isObject(t) && 'parallelJobs' in t && Array.isArray(t.parallelJobs) && t.parallelJobs.every((j) => isJob(j));
export const isPipeline = (t: unknown): t is Pipeline =>
isObject(t) && 'serialJobs' in t && Array.isArray(t.serialJobs) && t.serialJobs.every((p) => isPipelineStage(p));
export interface Pipeline {
readonly serialJobs: Array<PipelineStage>;
serialize(): string;
}
export * from './builder.js';
export * from './impl.js';
|