summaryrefslogtreecommitdiff
path: root/model/job.ts
diff options
context:
space:
mode:
authorElizabeth Alexander Hunt <me@liz.coffee>2025-05-18 22:54:15 -0700
committerElizabeth Alexander Hunt <me@liz.coffee>2025-05-18 22:55:20 -0700
commitd54e91c6582ed160cf2f2fcf977e48b4439d133b (patch)
tree5669367c4fa49bc0373b0c581ea3027218fd5e32 /model/job.ts
parent9cf3fc0259730b7dcf47b3ab4a04369e39fb4614 (diff)
downloadci-theBigRefactor.tar.gz
ci-theBigRefactor.zip
Diffstat (limited to 'model/job.ts')
-rw-r--r--model/job.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/model/job.ts b/model/job.ts
index 53d548f..a3b52dd 100644
--- a/model/job.ts
+++ b/model/job.ts
@@ -1,8 +1,13 @@
+import { isObject } from "@emprespresso/pengueno";
+
export type JobArgT = Record<string, string>;
export interface Job {
readonly type: string;
readonly arguments: JobArgT;
}
+export const isJob = (j: unknown): j is Job =>
+ !!(isObject(j) && "arguments" in j && isObject(j.arguments) &&
+ "type" in j && typeof j.type === "string" && j);
export interface FetchCodeJobProps extends JobArgT {
readonly remoteUrl: string;
@@ -40,3 +45,17 @@ export interface AnsiblePlaybookJob extends Job {
readonly type: "ansible_playbook";
readonly arguments: AnsiblePlaybookJobProps;
}
+
+export interface CheckoutCiJobProps extends JobArgT {
+ readonly remote: string;
+ readonly refname: string;
+ readonly rev: string;
+
+ readonly run: string;
+ readonly returnPath: string;
+}
+
+export interface CheckoutCiJob extends Job {
+ readonly type: "checkout_ci";
+ readonly arguments: CheckoutCiJobProps;
+}