diff options
author | Elizabeth <lizhunt@amazon.com> | 2025-05-28 15:05:38 -0700 |
---|---|---|
committer | Elizabeth <lizhunt@amazon.com> | 2025-05-28 15:05:38 -0700 |
commit | 3005cc83e605fb89b079cf0e6fd0ec95cd27b30e (patch) | |
tree | 992c5933f2ec4a75e32469ddd772c61dbcb2e2fd /hooks | |
parent | e3cf820b07e282221502cf2f116c9780b7375e0e (diff) | |
download | ci-3005cc83e605fb89b079cf0e6fd0ec95cd27b30e.tar.gz ci-3005cc83e605fb89b079cf0e6fd0ec95cd27b30e.zip |
Run prettier, add zed settings
Diffstat (limited to 'hooks')
-rw-r--r-- | hooks/server/ci.ts | 15 | ||||
-rw-r--r-- | hooks/server/health.ts | 9 | ||||
-rw-r--r-- | hooks/server/job/activity.ts | 72 | ||||
-rw-r--r-- | hooks/server/job/queuer.ts | 48 |
4 files changed, 83 insertions, 61 deletions
diff --git a/hooks/server/ci.ts b/hooks/server/ci.ts index 8f06124..4f0d7ba 100644 --- a/hooks/server/ci.ts +++ b/hooks/server/ci.ts @@ -24,15 +24,16 @@ export class CiHookServer { healthCheck: HealthChecker = _healthCheck, jobQueuer: IJobQueuer<ITraceable<Job, ServerTrace>> = new LaminarJobQueuer( getRequiredEnv("LAMINAR_URL").fold((err, val) => - err ? "https://ci.liz.coffee" : val + err ? "https://ci.liz.coffee" : val, ), ), - private readonly healthCheckActivity: IHealthCheckActivity = - new HealthCheckActivityImpl(healthCheck), - private readonly jobHookActivity: IJobHookActivity = - new JobHookActivityImpl(jobQueuer), - private readonly fourOhFourActivity: IFourOhFourActivity = - new FourOhFourActivityImpl(), + private readonly healthCheckActivity: IHealthCheckActivity = new HealthCheckActivityImpl( + healthCheck, + ), + private readonly jobHookActivity: IJobHookActivity = new JobHookActivityImpl( + jobQueuer, + ), + private readonly fourOhFourActivity: IFourOhFourActivity = new FourOhFourActivityImpl(), ) {} private route(req: ITraceable<PenguenoRequest, ServerTrace>) { diff --git a/hooks/server/health.ts b/hooks/server/health.ts index 2f67aa4..1acc074 100644 --- a/hooks/server/health.ts +++ b/hooks/server/health.ts @@ -13,13 +13,16 @@ import { export const healthCheck: HealthChecker = ( input: ITraceable<HealthCheckInput, ServerTrace>, ): Promise<IEither<Error, HealthCheckOutput>> => - input.bimap(TraceUtil.withFunctionTrace(healthCheck)) + input + .bimap(TraceUtil.withFunctionTrace(healthCheck)) .move(getRequiredEnv("LAMINAR_HOST")) // ensure LAMINAR_HOST is propagated to getStdout for other procedures .map((e) => e.get().moveRight(["laminarc", "show-jobs"])) .map((i) => - i.get().mapRight(i.move.apply) + i + .get() + .mapRight(i.move.apply) .flatMapAsync(getStdout.apply) - .then((gotJobs) => gotJobs.moveRight(HealthCheckOutput.YAASSSLAYQUEEN)) + .then((gotJobs) => gotJobs.moveRight(HealthCheckOutput.YAASSSLAYQUEEN)), ) .get(); diff --git a/hooks/server/job/activity.ts b/hooks/server/job/activity.ts index 14ea459..173cedf 100644 --- a/hooks/server/job/activity.ts +++ b/hooks/server/job/activity.ts @@ -22,7 +22,8 @@ const wellFormedJobMetric = Metric.fromName("Job.WellFormed"); const jobJsonTransformer = ( j: ITraceable<unknown, ServerTrace>, ): IEither<PenguenoError, Job> => - j.bimap(TraceUtil.withMetricTrace(wellFormedJobMetric)) + j + .bimap(TraceUtil.withMetricTrace(wellFormedJobMetric)) .map((tJson) => { if (!isJob(tJson) || !validateExecutionEntries(tJson)) { const err = "seems like a pwetty mawfomed job \\(-.-)/"; @@ -33,10 +34,12 @@ const jobJsonTransformer = ( }) .peek((tJob) => tJob.trace.trace( - tJob.get().fold((err) => - err ? wellFormedJobMetric.failure : wellFormedJobMetric.success - ), - ) + tJob + .get() + .fold((err) => + err ? wellFormedJobMetric.failure : wellFormedJobMetric.success, + ), + ), ) .get(); @@ -51,18 +54,19 @@ export class JobHookActivityImpl implements IJobHookActivity { ) {} private trace(r: ITraceable<PenguenoRequest, ServerTrace>) { - return r.bimap(TraceUtil.withClassTrace(this)) - .bimap( - TraceUtil.withMetricTrace(jobHookRequestMetric), - ); + return r + .bimap(TraceUtil.withClassTrace(this)) + .bimap(TraceUtil.withMetricTrace(jobHookRequestMetric)); } public processHook(r: ITraceable<PenguenoRequest, ServerTrace>) { - return this.trace(r).map(jsonModel(jobJsonTransformer)) + return this.trace(r) + .map(jsonModel(jobJsonTransformer)) .map(async (tEitherJobJson) => { const eitherJob = await tEitherJobJson.get(); return eitherJob.flatMapAsync(async (job) => { - const eitherQueued = await tEitherJobJson.move(job) + const eitherQueued = await tEitherJobJson + .move(job) .map(this.queuer.queue) .get(); return eitherQueued.mapLeft((e) => new PenguenoError(e.message, 500)); @@ -70,29 +74,35 @@ export class JobHookActivityImpl implements IJobHookActivity { }) .peek( TraceUtil.promiseify((tJob) => - tJob.get().fold( - (err: PenguenoError | undefined, _val: string | undefined) => { - if (!err) { - tJob.trace.trace(jobHookRequestMetric.success); - tJob.trace.trace(`all queued up and weady to go :D !! ${_val}`); - return; - } - tJob.trace.trace( - err.source === ErrorSource.SYSTEM - ? jobHookRequestMetric.failure - : jobHookRequestMetric.warn, - ); - tJob.trace.addTrace(err.source).trace(`${err}`); - }, - ) + tJob + .get() + .fold( + (err: PenguenoError | undefined, _val: string | undefined) => { + if (!err) { + tJob.trace.trace(jobHookRequestMetric.success); + tJob.trace.trace( + `all queued up and weady to go :D !! ${_val}`, + ); + return; + } + tJob.trace.trace( + err.source === ErrorSource.SYSTEM + ? jobHookRequestMetric.failure + : jobHookRequestMetric.warn, + ); + tJob.trace.addTrace(err.source).trace(`${err}`); + }, + ), ), ) .map( - TraceUtil.promiseify((tEitherQueuedJob) => - new JsonResponse(r, tEitherQueuedJob.get(), { - status: tEitherQueuedJob.get() - .fold(({ status }, _val) => _val ? 200 : status), - }) + TraceUtil.promiseify( + (tEitherQueuedJob) => + new JsonResponse(r, tEitherQueuedJob.get(), { + status: tEitherQueuedJob + .get() + .fold(({ status }, _val) => (_val ? 200 : status)), + }), ), ) .get(); diff --git a/hooks/server/job/queuer.ts b/hooks/server/job/queuer.ts index 6094183..069cca4 100644 --- a/hooks/server/job/queuer.ts +++ b/hooks/server/job/queuer.ts @@ -18,15 +18,14 @@ export interface IJobQueuer<TJob> { } export class LaminarJobQueuer - implements IJobQueuer<ITraceable<Job, ServerTrace>> { - constructor( - private readonly queuePositionPrefix: string, - ) {} + implements IJobQueuer<ITraceable<Job, ServerTrace>> +{ + constructor(private readonly queuePositionPrefix: string) {} private static GetJobTypeTrace = (jobType: string) => `LaminarJobQueue.Queue.${jobType}`; private static JobTypeMetrics = memoize((jobType: string) => - Metric.fromName(LaminarJobQueuer.GetJobTypeTrace(jobType)) + Metric.fromName(LaminarJobQueuer.GetJobTypeTrace(jobType)), ); public queue(j: ITraceable<Job, ServerTrace>) { @@ -50,29 +49,38 @@ export class LaminarJobQueuer .peek((c) => c.trace.trace( `im so excited to see how this queue job will end!! (>ᴗ<): ${c.get().toString()}`, - ) + ), ) .map(getStdout) .peek( TraceUtil.promiseify((q) => q.trace.trace( - q.get().fold((err, _val) => err ? metric.failure : metric.success), - ) + q + .get() + .fold((err, _val) => (err ? metric.failure : metric.success)), + ), ), ) - .map(TraceUtil.promiseify((q) => - q.get().mapRight((stdout) => { - q.trace.addTrace(LogLevel.DEBUG).trace(`stdout ${stdout}`); - const [jobName, jobId] = stdout.split(":"); - const jobUrl = `${this.queuePositionPrefix}/jobs/${jobName}/${jobId}`; + .map( + TraceUtil.promiseify((q) => + q + .get() + .mapRight((stdout) => { + q.trace.addTrace(LogLevel.DEBUG).trace(`stdout ${stdout}`); + const [jobName, jobId] = stdout.split(":"); + const jobUrl = `${this.queuePositionPrefix}/jobs/${jobName}/${jobId}`; - q.trace.trace(`all queued up and weady to go~ (˘ω˘) => ${jobUrl}`); - return jobUrl; - }).mapLeft((err) => { - q.trace.addTrace(LogLevel.ERROR).trace(err.toString()); - return err; - }) - )) + q.trace.trace( + `all queued up and weady to go~ (˘ω˘) => ${jobUrl}`, + ); + return jobUrl; + }) + .mapLeft((err) => { + q.trace.addTrace(LogLevel.ERROR).trace(err.toString()); + return err; + }), + ), + ) .get(); } } |