summaryrefslogtreecommitdiff
path: root/worker/executor/pipeline.ts
diff options
context:
space:
mode:
authorElizabeth <me@liz.coffee>2025-06-02 11:14:52 -0700
committerElizabeth <me@liz.coffee>2025-06-02 11:14:52 -0700
commit373d9ec700c0097a22cf665a8e33cf48998d1dc2 (patch)
tree71297ac69177037929e1bfb00b8c71038058acd5 /worker/executor/pipeline.ts
parent646c5eb11d3b9240f8434163d103a117d30c88c7 (diff)
downloadci-373d9ec700c0097a22cf665a8e33cf48998d1dc2.tar.gz
ci-373d9ec700c0097a22cf665a8e33cf48998d1dc2.zip
Minor things
Diffstat (limited to 'worker/executor/pipeline.ts')
-rw-r--r--worker/executor/pipeline.ts58
1 files changed, 0 insertions, 58 deletions
diff --git a/worker/executor/pipeline.ts b/worker/executor/pipeline.ts
deleted file mode 100644
index c8423b1..0000000
--- a/worker/executor/pipeline.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import {
- Either,
- type IEither,
- type ITraceable,
- type LogMetricTraceSupplier,
- Metric,
- TraceUtil,
-} from "@emprespresso/pengueno";
-import type { Job, JobArgT, Pipeline } from "@emprespresso/ci-model";
-import { executeJob } from "./mod.ts";
-
-const pipelinesMetric = Metric.fromName("pipelines");
-export const executePipeline = (
- tPipeline: ITraceable<Pipeline, LogMetricTraceSupplier>,
- baseEnv?: JobArgT,
-): Promise<IEither<Error, void>> =>
- tPipeline
- .bimap(TraceUtil.withFunctionTrace(executePipeline))
- .bimap(TraceUtil.withMetricTrace(pipelinesMetric))
- .map(async (tJobs): Promise<IEither<Error, void>> => {
- for (const [i, serialStage] of tJobs.get().serialJobs.entries()) {
- tJobs.trace.trace(
- `executing stage ${i}. do your best little stage :>\n${serialStage}`,
- );
- const jobResults = await Promise.all(
- serialStage.parallelJobs.map((job) =>
- tJobs
- .bimap((_) => [job, `stage ${i}`])
- .map(
- (tJob) =>
- <Job>{
- ...tJob.get(),
- arguments: { ...baseEnv, ...tJob.get().arguments },
- },
- )
- .map(executeJob)
- .peek(
- TraceUtil.promiseify((tEitherJobOutput) =>
- tEitherJobOutput
- .get()
- .mapRight((stdout) =>
- tEitherJobOutput.trace.addTrace("STDOUT").trace(stdout),
- ),
- ),
- )
- .get(),
- ),
- );
- const failures = jobResults.filter((e) => e.fold((err) => !!err));
- if (failures.length > 0) {
- tJobs.trace.trace(pipelinesMetric.failure);
- return Either.left(new Error(failures.toString()));
- }
- }
- tJobs.trace.trace(pipelinesMetric.success);
- return Either.right(undefined);
- })
- .get();