@factorialco/gat 3.2.1 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/job.d.ts +6 -5
- package/dist/workflow.d.ts +1 -1
- package/dist/workflow.js +40 -41
- package/package.json +1 -1
package/dist/job.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export interface Service {
|
|
|
20
20
|
options?: string;
|
|
21
21
|
volumes?: string[];
|
|
22
22
|
}
|
|
23
|
-
export interface
|
|
23
|
+
export interface StepsJobOptions<Step, RunnerDefinition, Name> {
|
|
24
24
|
prettyName?: string;
|
|
25
25
|
permissions?: object;
|
|
26
26
|
ifExpression?: string;
|
|
@@ -33,11 +33,12 @@ export interface BaseJobOptions<RunnerDefinition, Name> {
|
|
|
33
33
|
matrix?: Matrix | string;
|
|
34
34
|
outputs?: Record<string, string>;
|
|
35
35
|
workingDirectory?: string;
|
|
36
|
-
}
|
|
37
|
-
export interface StepsJobOptions<Step, RunnerDefinition, Name> extends BaseJobOptions<RunnerDefinition, Name> {
|
|
38
36
|
steps: Step[];
|
|
39
37
|
}
|
|
40
|
-
export interface UsesJobOptions<
|
|
38
|
+
export interface UsesJobOptions<Name> {
|
|
39
|
+
prettyName?: string;
|
|
40
|
+
dependsOn?: Array<Name>;
|
|
41
|
+
ifExpression?: string;
|
|
41
42
|
uses: string;
|
|
42
43
|
with?: Record<string, string | number | boolean | object>;
|
|
43
44
|
secrets?: Record<string, string | number | boolean | object> | "inherit";
|
|
@@ -45,5 +46,5 @@ export interface UsesJobOptions<RunnerDefinition, Name> extends BaseJobOptions<R
|
|
|
45
46
|
export type StringWithNoSpaces<T> = T extends `${string} ${string}` ? never : T extends ` ${string}` ? never : T extends `${string} ` ? never : T;
|
|
46
47
|
export interface Job<Step, RunnerDefinition, Name> {
|
|
47
48
|
name: string;
|
|
48
|
-
options: StepsJobOptions<Step, RunnerDefinition, Name> | UsesJobOptions<
|
|
49
|
+
options: StepsJobOptions<Step, RunnerDefinition, Name> | UsesJobOptions<Name>;
|
|
49
50
|
}
|
package/dist/workflow.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export declare class Workflow<JobStep extends Step = Step, Runner extends Runner
|
|
|
22
22
|
constructor(name: string);
|
|
23
23
|
on<T extends EventName>(name: T, options?: EventOptions<T>): this;
|
|
24
24
|
addDefaults(options: DefaultOptions): this;
|
|
25
|
-
addJob<T extends string>(name: StringWithNoSpaces<T>, options: StepsJobOptions<JobStep, Runner, JobName> | UsesJobOptions<
|
|
25
|
+
addJob<T extends string>(name: StringWithNoSpaces<T>, options: StepsJobOptions<JobStep, Runner, JobName> | UsesJobOptions<JobName>): Workflow<JobStep, Runner, JobName | T>;
|
|
26
26
|
setEnv(name: string, value: string): this;
|
|
27
27
|
setConcurrencyGroup(concurrencyGroup: ConcurrencyGroup | null): this;
|
|
28
28
|
defaultRunner(): string;
|
package/dist/workflow.js
CHANGED
|
@@ -91,60 +91,59 @@ class Workflow {
|
|
|
91
91
|
? Object.fromEntries(this.env.map(({ name, value }) => [name, value]))
|
|
92
92
|
: undefined,
|
|
93
93
|
jobs: Object.fromEntries(await Promise.all(this.jobs.map(async ({ name, options: jobOptions }) => {
|
|
94
|
-
const { prettyName, permissions, ifExpression, runsOn, matrix, env, dependsOn, services, timeout, concurrency, outputs, workingDirectory, } = jobOptions;
|
|
95
|
-
const computedOptions = {
|
|
96
|
-
name: prettyName,
|
|
97
|
-
permissions,
|
|
98
|
-
if: ifExpression,
|
|
99
|
-
"runs-on": runsOn ?? this.defaultRunner(),
|
|
100
|
-
"timeout-minutes": timeout ?? 15,
|
|
101
|
-
needs: dependsOn,
|
|
102
|
-
services,
|
|
103
|
-
concurrency: concurrency
|
|
104
|
-
? {
|
|
105
|
-
group: `${(0, kebabCase_1.default)(this.name)}-${name}-${concurrency.groupSuffix}`,
|
|
106
|
-
"cancel-in-progress": concurrency.cancelPrevious,
|
|
107
|
-
}
|
|
108
|
-
: undefined,
|
|
109
|
-
strategy: matrix
|
|
110
|
-
? {
|
|
111
|
-
"fail-fast": false,
|
|
112
|
-
matrix: typeof matrix === "string"
|
|
113
|
-
? matrix
|
|
114
|
-
: {
|
|
115
|
-
...Object.fromEntries(matrix.elements.map(({ id, options }) => [
|
|
116
|
-
id,
|
|
117
|
-
options,
|
|
118
|
-
])),
|
|
119
|
-
include: matrix.extra,
|
|
120
|
-
},
|
|
121
|
-
}
|
|
122
|
-
: undefined,
|
|
123
|
-
env,
|
|
124
|
-
defaults: workingDirectory
|
|
125
|
-
? {
|
|
126
|
-
run: {
|
|
127
|
-
"working-directory": workingDirectory,
|
|
128
|
-
},
|
|
129
|
-
}
|
|
130
|
-
: undefined,
|
|
131
|
-
};
|
|
132
94
|
if ("uses" in jobOptions) {
|
|
95
|
+
const { prettyName, ifExpression, dependsOn } = jobOptions;
|
|
133
96
|
return [
|
|
134
97
|
name,
|
|
135
98
|
{
|
|
136
|
-
|
|
99
|
+
name: prettyName,
|
|
100
|
+
if: ifExpression,
|
|
101
|
+
needs: dependsOn,
|
|
137
102
|
uses: jobOptions.uses,
|
|
138
103
|
with: jobOptions.with,
|
|
139
104
|
secrets: jobOptions.secrets,
|
|
140
|
-
outputs,
|
|
141
105
|
},
|
|
142
106
|
];
|
|
143
107
|
}
|
|
108
|
+
const { prettyName, permissions, ifExpression, runsOn, matrix, env, dependsOn, services, timeout, concurrency, outputs, workingDirectory, } = jobOptions;
|
|
144
109
|
return [
|
|
145
110
|
name,
|
|
146
111
|
{
|
|
147
|
-
|
|
112
|
+
name: prettyName,
|
|
113
|
+
permissions,
|
|
114
|
+
if: ifExpression,
|
|
115
|
+
"runs-on": runsOn ?? this.defaultRunner(),
|
|
116
|
+
"timeout-minutes": timeout ?? 15,
|
|
117
|
+
needs: dependsOn,
|
|
118
|
+
services,
|
|
119
|
+
concurrency: concurrency
|
|
120
|
+
? {
|
|
121
|
+
group: `${(0, kebabCase_1.default)(this.name)}-${name}-${concurrency.groupSuffix}`,
|
|
122
|
+
"cancel-in-progress": concurrency.cancelPrevious,
|
|
123
|
+
}
|
|
124
|
+
: undefined,
|
|
125
|
+
strategy: matrix
|
|
126
|
+
? {
|
|
127
|
+
"fail-fast": false,
|
|
128
|
+
matrix: typeof matrix === "string"
|
|
129
|
+
? matrix
|
|
130
|
+
: {
|
|
131
|
+
...Object.fromEntries(matrix.elements.map(({ id, options }) => [
|
|
132
|
+
id,
|
|
133
|
+
options,
|
|
134
|
+
])),
|
|
135
|
+
include: matrix.extra,
|
|
136
|
+
},
|
|
137
|
+
}
|
|
138
|
+
: undefined,
|
|
139
|
+
env,
|
|
140
|
+
defaults: workingDirectory
|
|
141
|
+
? {
|
|
142
|
+
run: {
|
|
143
|
+
"working-directory": workingDirectory,
|
|
144
|
+
},
|
|
145
|
+
}
|
|
146
|
+
: undefined,
|
|
148
147
|
steps: await Promise.all(jobOptions.steps.map(async (step) => {
|
|
149
148
|
const { id, name, ifExpression, workingDirectory, continueOnError, timeout, ...options } = step;
|
|
150
149
|
return {
|