diff options
author | Elizabeth Hunt <me@liz.coffee> | 2025-06-20 14:53:38 -0700 |
---|---|---|
committer | Elizabeth Hunt <me@liz.coffee> | 2025-06-20 14:53:38 -0700 |
commit | d4791f3d357634daf506fb8f91cc5332a794c421 (patch) | |
tree | 1bb01d2d4d8fa74d83bb6f99f2c8aa4146ca2d11 /model/job | |
parent | d7e8d31c94cd713a2f4cf799e20e993acc69e361 (diff) | |
download | ci-d4791f3d357634daf506fb8f91cc5332a794c421.tar.gz ci-d4791f3d357634daf506fb8f91cc5332a794c421.zip |
Move to nodejs
Diffstat (limited to 'model/job')
-rw-r--r-- | model/job/index.ts | 11 | ||||
-rw-r--r-- | model/job/jobs.ts | 52 |
2 files changed, 63 insertions, 0 deletions
diff --git a/model/job/index.ts b/model/job/index.ts new file mode 100644 index 0000000..78f69d6 --- /dev/null +++ b/model/job/index.ts @@ -0,0 +1,11 @@ +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 * from './jobs'; diff --git a/model/job/jobs.ts b/model/job/jobs.ts new file mode 100644 index 0000000..e201c4d --- /dev/null +++ b/model/job/jobs.ts @@ -0,0 +1,52 @@ +import { Job, JobArgT } from '.'; + +export interface FetchCodeJobProps extends JobArgT { + readonly remoteUrl: string; + readonly checkout: string; + readonly path: string; +} + +export interface FetchCodeJob { + readonly type: 'fetch_code.ts'; + readonly arguments: FetchCodeJobProps; +} + +export interface BuildDockerImageJobProps extends JobArgT { + readonly registry: string; + readonly namespace: string; + readonly repository: string; + readonly imageTag: string; + + readonly context: string; + readonly dockerfile: string; + readonly buildTarget: string; +} + +export interface BuildDockerImageJob extends Job { + readonly type: 'build_docker_image.ts'; + readonly arguments: BuildDockerImageJobProps; +} + +export interface AnsiblePlaybookJobProps extends JobArgT { + readonly path: string; + readonly playbooks: string; +} + +export interface AnsiblePlaybookJob extends Job { + readonly type: 'ansible_playbook.ts'; + 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.ts'; + readonly arguments: CheckoutCiJobProps; +} |