gagen 0.1.1 → 0.2.0
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/esm/artifact.js +2 -2
- package/esm/expression.d.ts.map +1 -1
- package/esm/expression.js +16 -4
- package/esm/job.d.ts.map +1 -1
- package/esm/job.js +7 -4
- package/esm/step.d.ts +22 -14
- package/esm/step.d.ts.map +1 -1
- package/esm/step.js +50 -37
- package/package.json +1 -1
package/esm/artifact.js
CHANGED
|
@@ -46,12 +46,12 @@ export class Artifact {
|
|
|
46
46
|
if (config.path != null) {
|
|
47
47
|
withObj.path = config.path;
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
let s = new Step({
|
|
50
50
|
uses: `actions/download-artifact@${__classPrivateFieldGet(this, _Artifact_version, "f")}`,
|
|
51
51
|
with: withObj,
|
|
52
52
|
});
|
|
53
53
|
if (__classPrivateFieldGet(this, _Artifact_uploadStep, "f")) {
|
|
54
|
-
s.
|
|
54
|
+
s = s._withCrossJobDep(__classPrivateFieldGet(this, _Artifact_uploadStep, "f"));
|
|
55
55
|
}
|
|
56
56
|
return s;
|
|
57
57
|
}
|
package/esm/expression.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAIvD,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,eAAe,CAAC;AAEvE;;;GAGG;AACH,qBAAa,eAAe;;IAE1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;gBAI5C,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC;IAa3D,sDAAsD;IACtD,IAAI,UAAU,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAE9C;IAED,oDAAoD;IACpD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS;IASnD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS;IAStD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAQrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAQtC,uCAAuC;IACvC,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;GAIG;AACH,8BAAsB,SAAS;IAC7B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAEpC,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAIlD,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAIhC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAI/B,GAAG,IAAI,SAAS;IAIhB;;;;;;;OAOG;IACH,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;IAItC;;;OAGG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB,2EAA2E;IAC3E,UAAU,IAAI,SAAS,EAAE;IAIzB,0EAA0E;IAC1E,SAAS,IAAI,SAAS,EAAE;IAIxB,uCAAuC;IACvC,QAAQ,CAAC,YAAY,IAAI,MAAM;IAE/B,sDAAsD;IACtD,QAAQ,IAAI,MAAM;CAGnB;AAID,yCAAyC;AACzC,qBAAa,mBAAoB,SAAQ,SAAS;;gBAM9C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,IAAI,GAAG,IAAI,EACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAQxC,YAAY,IAAI,MAAM;CAGvB;AAED,4BAA4B;AAC5B,qBAAa,qBAAsB,SAAQ,SAAS;;gBAKhD,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAOxC,YAAY,IAAI,MAAM;CAGvB;
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAIvD,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,eAAe,CAAC;AAEvE;;;GAGG;AACH,qBAAa,eAAe;;IAE1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;gBAI5C,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC;IAa3D,sDAAsD;IACtD,IAAI,UAAU,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAE9C;IAED,oDAAoD;IACpD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS;IASnD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS;IAStD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAQrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAQtC,uCAAuC;IACvC,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;GAIG;AACH,8BAAsB,SAAS;IAC7B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAEpC,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAIlD,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAIhC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAI/B,GAAG,IAAI,SAAS;IAIhB;;;;;;;OAOG;IACH,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;IAItC;;;OAGG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB,2EAA2E;IAC3E,UAAU,IAAI,SAAS,EAAE;IAIzB,0EAA0E;IAC1E,SAAS,IAAI,SAAS,EAAE;IAIxB,uCAAuC;IACvC,QAAQ,CAAC,YAAY,IAAI,MAAM;IAE/B,sDAAsD;IACtD,QAAQ,IAAI,MAAM;CAGnB;AAID,yCAAyC;AACzC,qBAAa,mBAAoB,SAAQ,SAAS;;gBAM9C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,IAAI,GAAG,IAAI,EACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAQxC,YAAY,IAAI,MAAM;CAGvB;AAED,4BAA4B;AAC5B,qBAAa,qBAAsB,SAAQ,SAAS;;gBAKhD,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAOxC,YAAY,IAAI,MAAM;CAGvB;AAoFD,mDAAmD;AACnD,qBAAa,YAAa,SAAQ,SAAS;;gBAG7B,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAKtE,YAAY,IAAI,MAAM;CAGvB;AAED,+DAA+D;AAC/D,wBAAgB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAExD;AAED,6DAA6D;AAC7D,eAAO,MAAM,UAAU;IACrB,8DAA8D;;QAE5D,+CAA+C;+BACnC,SAAS;QAErB,qEAAqE;gCACxD,SAAS;QAEtB,gDAAgD;gCACnC,SAAS;QAEtB,gDAAgD;kCACjC,SAAS;;IAG1B;;;;;;;;OAQG;2BACW,MAAM,KAAG,SAAS;IAahC;;;;;;OAMG;gCACgB,MAAM,KAAG,SAAS;IAOrC;;;;;;OAMG;8BACc,MAAM,KAAG,SAAS;CAO3B,CAAC;AAIX,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAGtE;AAED,wBAAgB,WAAW,CACzB,GAAG,WAAW,EAAE,CAAC;IAAE,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAAE,GAAG,SAAS,CAAC,EAAE,GAC5D,WAAW,CAAC,gBAAgB,CAAC,CAY/B;AAcD,UAAU,aAAa;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,YAAY,CAAC;CACrB;AA+BD;;;GAGG;AACH,qBAAa,WAAW;;gBAKpB,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAOxC,sCAAsC;IACtC,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa;IAI3C;;;;;;;OAOG;IACH,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe;CAiB3C;AAED;;;GAGG;AACH,qBAAa,aAAa;;gBAMtB,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAC9B,SAAS,EAAE,SAAS;IAQtB,yCAAyC;IACzC,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;CAMvC"}
|
package/esm/expression.js
CHANGED
|
@@ -196,8 +196,15 @@ class LogicalCondition extends Condition {
|
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
_a = LogicalCondition, _LogicalCondition_left = new WeakMap(), _LogicalCondition_right = new WeakMap(), _LogicalCondition_instances = new WeakSet(), _LogicalCondition_needsParens = function _LogicalCondition_needsParens(child) {
|
|
199
|
-
|
|
200
|
-
|
|
199
|
+
if (child instanceof _a && child.op !== this.op)
|
|
200
|
+
return true;
|
|
201
|
+
if (child instanceof RawCondition) {
|
|
202
|
+
// only parenthesize raw expressions that contain logical operators
|
|
203
|
+
// which could cause precedence ambiguity
|
|
204
|
+
const expr = child.toExpression();
|
|
205
|
+
return expr.includes("&&") || expr.includes("||");
|
|
206
|
+
}
|
|
207
|
+
return false;
|
|
201
208
|
};
|
|
202
209
|
/** `!inner` */
|
|
203
210
|
class NotCondition extends Condition {
|
|
@@ -319,8 +326,13 @@ function collectTernarySources(branches) {
|
|
|
319
326
|
}
|
|
320
327
|
// whether a condition needs parentheses when used as `cond && value`
|
|
321
328
|
function needsParensForTernary(condition) {
|
|
322
|
-
|
|
323
|
-
|
|
329
|
+
if (condition instanceof LogicalCondition && condition.op === "||") {
|
|
330
|
+
return true;
|
|
331
|
+
}
|
|
332
|
+
if (condition instanceof RawCondition) {
|
|
333
|
+
return condition.toExpression().includes("||");
|
|
334
|
+
}
|
|
335
|
+
return false;
|
|
324
336
|
}
|
|
325
337
|
function formatTernaryValue(value) {
|
|
326
338
|
if (value instanceof ExpressionValue)
|
package/esm/job.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACrB,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAGhB,IAAI,EACJ,SAAS,EACT,KAAK,QAAQ,EAEd,MAAM,WAAW,CAAC;AAEnB,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAChC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,CAAC;CACtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,CAAC;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC;IACjC,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACnE,WAAW,CAAC,EACR;QAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAChD,MAAM,GACN,eAAe,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"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"}
|
package/esm/job.js
CHANGED
|
@@ -13,6 +13,8 @@ var _Job_id, _Job_config, _Job_leafSteps, _Job_outputDefs;
|
|
|
13
13
|
import { Condition, ExpressionValue, } from "./expression.js";
|
|
14
14
|
import { Matrix } from "./matrix.js";
|
|
15
15
|
import { serializeConditionLike, serializeConfigValues, Step, StepGroup, toCondition, } from "./step.js";
|
|
16
|
+
// tracks which Job owns each resolved step (for cross-job needs inference)
|
|
17
|
+
const stepOwner = new WeakMap();
|
|
16
18
|
export class Job {
|
|
17
19
|
constructor(id, config, init) {
|
|
18
20
|
_Job_id.set(this, void 0);
|
|
@@ -95,9 +97,9 @@ export class Job {
|
|
|
95
97
|
assignPriority(__classPrivateFieldGet(this, _Job_leafSteps, "f")[i], i);
|
|
96
98
|
}
|
|
97
99
|
const sorted = topoSort(allSteps, priority);
|
|
98
|
-
//
|
|
100
|
+
// record job ownership for cross-job needs inference
|
|
99
101
|
for (const s of sorted) {
|
|
100
|
-
s
|
|
102
|
+
stepOwner.set(s, this);
|
|
101
103
|
}
|
|
102
104
|
return sorted;
|
|
103
105
|
}
|
|
@@ -832,8 +834,9 @@ function collectJobSourcesFromStep(s, out, visited = new Set()) {
|
|
|
832
834
|
collectJobSources(s.config.env, out);
|
|
833
835
|
// check cross-job step dependencies (e.g., artifact download → upload)
|
|
834
836
|
for (const dep of s._crossJobDeps) {
|
|
835
|
-
|
|
836
|
-
|
|
837
|
+
const owner = stepOwner.get(dep);
|
|
838
|
+
if (owner) {
|
|
839
|
+
out.add(owner);
|
|
837
840
|
}
|
|
838
841
|
}
|
|
839
842
|
// walk dependencies recursively
|
package/esm/step.d.ts
CHANGED
|
@@ -17,20 +17,27 @@ export interface StepConfig<O extends string = never> {
|
|
|
17
17
|
}
|
|
18
18
|
export declare function resetStepCounter(): void;
|
|
19
19
|
export type StepLike = Step<string> | StepGroup;
|
|
20
|
+
interface _StepState {
|
|
21
|
+
id: string;
|
|
22
|
+
dependencies: readonly Step<string>[];
|
|
23
|
+
comesAfterDeps: readonly Step<string>[];
|
|
24
|
+
crossJobDeps: readonly Step<string>[];
|
|
25
|
+
}
|
|
20
26
|
export declare class Step<O extends string = never> implements ExpressionSource {
|
|
21
27
|
#private;
|
|
22
|
-
readonly config: StepConfig<O
|
|
23
|
-
readonly dependencies: Step<string>[];
|
|
24
|
-
readonly comesAfterDeps: Step<string>[];
|
|
28
|
+
readonly config: Readonly<StepConfig<O>>;
|
|
29
|
+
readonly dependencies: readonly Step<string>[];
|
|
30
|
+
readonly comesAfterDeps: readonly Step<string>[];
|
|
25
31
|
readonly outputs: {
|
|
26
|
-
[K in O]: ExpressionValue;
|
|
32
|
+
readonly [K in O]: ExpressionValue;
|
|
27
33
|
};
|
|
28
|
-
readonly _crossJobDeps: Step<string>[];
|
|
29
|
-
|
|
30
|
-
constructor(config: StepConfig<O>);
|
|
34
|
+
readonly _crossJobDeps: readonly Step<string>[];
|
|
35
|
+
constructor(config: StepConfig<O>, _state?: _StepState);
|
|
31
36
|
get id(): string;
|
|
32
|
-
dependsOn(...deps: StepLike[]):
|
|
33
|
-
comesAfter(...deps: StepLike[]):
|
|
37
|
+
dependsOn(...deps: StepLike[]): Step<O>;
|
|
38
|
+
comesAfter(...deps: StepLike[]): Step<O>;
|
|
39
|
+
if(condition: ConditionLike): Step<O>;
|
|
40
|
+
_withCrossJobDep(dep: Step<string>): Step<O>;
|
|
34
41
|
toYaml(effectiveIf?: Condition): Record<string, unknown>;
|
|
35
42
|
}
|
|
36
43
|
export declare function step<const O extends string = never>(config: StepConfig<O>): Step<O>;
|
|
@@ -38,11 +45,12 @@ export declare function serializeConditionLike(c: ConditionLike): string;
|
|
|
38
45
|
export declare function toCondition(c: ConditionLike): Condition;
|
|
39
46
|
export declare function serializeConfigValues(record: Record<string, ConfigValue>): Record<string, string | number | boolean>;
|
|
40
47
|
export declare class StepGroup {
|
|
41
|
-
readonly all: Step<string>[];
|
|
42
|
-
constructor(steps: Step<string>[]);
|
|
43
|
-
if(condition: ConditionLike):
|
|
44
|
-
dependsOn(...deps: StepLike[]):
|
|
45
|
-
comesAfter(...deps: StepLike[]):
|
|
48
|
+
readonly all: readonly Step<string>[];
|
|
49
|
+
constructor(steps: readonly Step<string>[]);
|
|
50
|
+
if(condition: ConditionLike): StepGroup;
|
|
51
|
+
dependsOn(...deps: StepLike[]): StepGroup;
|
|
52
|
+
comesAfter(...deps: StepLike[]): StepGroup;
|
|
46
53
|
}
|
|
47
54
|
export declare function steps(...items: (Step<string> | StepGroup | StepConfig)[]): StepGroup;
|
|
55
|
+
export {};
|
|
48
56
|
//# sourceMappingURL=step.d.ts.map
|
package/esm/step.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,eAAe,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,eAAe,CAAC;AAEtE,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClC,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;CACxB;AAKD,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"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"}
|
package/esm/step.js
CHANGED
|
@@ -17,7 +17,7 @@ export function resetStepCounter() {
|
|
|
17
17
|
stepCounter = 0;
|
|
18
18
|
}
|
|
19
19
|
export class Step {
|
|
20
|
-
constructor(config) {
|
|
20
|
+
constructor(config, _state) {
|
|
21
21
|
_Step_id.set(this, void 0);
|
|
22
22
|
Object.defineProperty(this, "config", {
|
|
23
23
|
enumerable: true,
|
|
@@ -29,13 +29,13 @@ export class Step {
|
|
|
29
29
|
enumerable: true,
|
|
30
30
|
configurable: true,
|
|
31
31
|
writable: true,
|
|
32
|
-
value:
|
|
32
|
+
value: void 0
|
|
33
33
|
});
|
|
34
34
|
Object.defineProperty(this, "comesAfterDeps", {
|
|
35
35
|
enumerable: true,
|
|
36
36
|
configurable: true,
|
|
37
37
|
writable: true,
|
|
38
|
-
value:
|
|
38
|
+
value: void 0
|
|
39
39
|
});
|
|
40
40
|
Object.defineProperty(this, "outputs", {
|
|
41
41
|
enumerable: true,
|
|
@@ -45,24 +45,20 @@ export class Step {
|
|
|
45
45
|
});
|
|
46
46
|
// cross-job step references for needs inference (e.g., artifact download → upload)
|
|
47
47
|
Object.defineProperty(this, "_crossJobDeps", {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
configurable: true,
|
|
50
|
-
writable: true,
|
|
51
|
-
value: []
|
|
52
|
-
});
|
|
53
|
-
// set by Job.resolveSteps() — the job that owns this step
|
|
54
|
-
Object.defineProperty(this, "_job", {
|
|
55
48
|
enumerable: true,
|
|
56
49
|
configurable: true,
|
|
57
50
|
writable: true,
|
|
58
51
|
value: void 0
|
|
59
52
|
});
|
|
60
|
-
if (config.outputs?.length && !config.id) {
|
|
53
|
+
if (!_state && config.outputs?.length && !config.id) {
|
|
61
54
|
throw new Error("Step with outputs must have an explicit id");
|
|
62
55
|
}
|
|
63
|
-
__classPrivateFieldSet(this, _Step_id, config.id ?? `_step_${stepCounter++}`, "f");
|
|
56
|
+
__classPrivateFieldSet(this, _Step_id, _state?.id ?? config.id ?? `_step_${stepCounter++}`, "f");
|
|
64
57
|
this.config = config;
|
|
65
|
-
|
|
58
|
+
this.dependencies = _state?.dependencies ?? [];
|
|
59
|
+
this.comesAfterDeps = _state?.comesAfterDeps ?? [];
|
|
60
|
+
this._crossJobDeps = _state?.crossJobDeps ?? [];
|
|
61
|
+
// build typed outputs (always regenerated so they reference this instance)
|
|
66
62
|
const outputs = {};
|
|
67
63
|
if (config.outputs) {
|
|
68
64
|
for (const name of config.outputs) {
|
|
@@ -76,26 +72,58 @@ export class Step {
|
|
|
76
72
|
return __classPrivateFieldGet(this, _Step_id, "f");
|
|
77
73
|
}
|
|
78
74
|
dependsOn(...deps) {
|
|
75
|
+
const newDeps = [...this.dependencies];
|
|
79
76
|
for (const d of deps) {
|
|
80
77
|
if (d instanceof StepGroup) {
|
|
81
|
-
|
|
78
|
+
newDeps.push(...d.all);
|
|
82
79
|
}
|
|
83
80
|
else {
|
|
84
|
-
|
|
81
|
+
newDeps.push(d);
|
|
85
82
|
}
|
|
86
83
|
}
|
|
87
|
-
return this
|
|
84
|
+
return new Step(this.config, {
|
|
85
|
+
id: __classPrivateFieldGet(this, _Step_id, "f"),
|
|
86
|
+
dependencies: newDeps,
|
|
87
|
+
comesAfterDeps: this.comesAfterDeps,
|
|
88
|
+
crossJobDeps: this._crossJobDeps,
|
|
89
|
+
});
|
|
88
90
|
}
|
|
89
91
|
comesAfter(...deps) {
|
|
92
|
+
const newDeps = [...this.comesAfterDeps];
|
|
90
93
|
for (const d of deps) {
|
|
91
94
|
if (d instanceof StepGroup) {
|
|
92
|
-
|
|
95
|
+
newDeps.push(...d.all);
|
|
93
96
|
}
|
|
94
97
|
else {
|
|
95
|
-
|
|
98
|
+
newDeps.push(d);
|
|
96
99
|
}
|
|
97
100
|
}
|
|
98
|
-
return this
|
|
101
|
+
return new Step(this.config, {
|
|
102
|
+
id: __classPrivateFieldGet(this, _Step_id, "f"),
|
|
103
|
+
dependencies: this.dependencies,
|
|
104
|
+
comesAfterDeps: newDeps,
|
|
105
|
+
crossJobDeps: this._crossJobDeps,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if(condition) {
|
|
109
|
+
const cond = toCondition(condition);
|
|
110
|
+
const newIf = this.config.if != null
|
|
111
|
+
? cond.and(toCondition(this.config.if))
|
|
112
|
+
: cond;
|
|
113
|
+
return new Step({ ...this.config, if: newIf }, {
|
|
114
|
+
id: __classPrivateFieldGet(this, _Step_id, "f"),
|
|
115
|
+
dependencies: this.dependencies,
|
|
116
|
+
comesAfterDeps: this.comesAfterDeps,
|
|
117
|
+
crossJobDeps: this._crossJobDeps,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
_withCrossJobDep(dep) {
|
|
121
|
+
return new Step(this.config, {
|
|
122
|
+
id: __classPrivateFieldGet(this, _Step_id, "f"),
|
|
123
|
+
dependencies: this.dependencies,
|
|
124
|
+
comesAfterDeps: this.comesAfterDeps,
|
|
125
|
+
crossJobDeps: [...this._crossJobDeps, dep],
|
|
126
|
+
});
|
|
99
127
|
}
|
|
100
128
|
toYaml(effectiveIf) {
|
|
101
129
|
const result = {};
|
|
@@ -182,28 +210,13 @@ export class StepGroup {
|
|
|
182
210
|
this.all = steps;
|
|
183
211
|
}
|
|
184
212
|
if(condition) {
|
|
185
|
-
|
|
186
|
-
for (const s of this.all) {
|
|
187
|
-
if (s.config.if != null) {
|
|
188
|
-
s.config.if = cond.and(toCondition(s.config.if));
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
s.config.if = cond;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return this;
|
|
213
|
+
return new StepGroup(this.all.map((s) => s.if(condition)));
|
|
195
214
|
}
|
|
196
215
|
dependsOn(...deps) {
|
|
197
|
-
|
|
198
|
-
s.dependsOn(...deps);
|
|
199
|
-
}
|
|
200
|
-
return this;
|
|
216
|
+
return new StepGroup(this.all.map((s) => s.dependsOn(...deps)));
|
|
201
217
|
}
|
|
202
218
|
comesAfter(...deps) {
|
|
203
|
-
|
|
204
|
-
s.comesAfter(...deps);
|
|
205
|
-
}
|
|
206
|
-
return this;
|
|
219
|
+
return new StepGroup(this.all.map((s) => s.comesAfter(...deps)));
|
|
207
220
|
}
|
|
208
221
|
}
|
|
209
222
|
export function steps(...items) {
|