summaryrefslogtreecommitdiff
path: root/hooks/queuer.ts
diff options
context:
space:
mode:
Diffstat (limited to 'hooks/queuer.ts')
-rw-r--r--hooks/queuer.ts44
1 files changed, 0 insertions, 44 deletions
diff --git a/hooks/queuer.ts b/hooks/queuer.ts
deleted file mode 100644
index d2987ca..0000000
--- a/hooks/queuer.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { getStdout, type IEither, type Traceable } from "@liz-ci/utils";
-import type { Job } from "@liz-ci/model";
-
-type QueuePosition = string;
-export class QueueError extends Error {}
-export interface IJobQueuer<TJob> {
- queue: (
- job: TJob,
- ) => Promise<IEither<QueueError, QueuePosition>>;
-}
-
-export class LaminarJobQueuer implements IJobQueuer<Traceable<Job>> {
- constructor(
- private readonly queuePositionPrefix: string,
- ) {}
-
- public async queue(j: Traceable<Job>) {
- const { item: job, logger: _logger } = j;
- const logger = _logger.addTracer(() => `[LaminarJobQueuer.queue.${job}]`);
- const laminarCommand = [
- "laminarc",
- "queue",
- job.type,
- ...Object.entries(job.arguments).map(([key, val]) => `"${key}"="${val}"`),
- ];
-
- logger.log(
- `im so excited to see how this queue job will end!! (>ᴗ<)`,
- laminarCommand,
- );
-
- return (await getStdout(j.map(() => laminarCommand))).mapRight(
- (stdout) => {
- logger.log(stdout);
-
- const [jobName, jobId] = stdout.split(":");
- const jobUrl = `${this.queuePositionPrefix}/jobs/${jobName}/${jobId}`;
-
- logger.log(`all queued up and weady to go~ (˘ω˘) => ${jobUrl}\n`);
- return jobUrl;
- },
- );
- }
-}