@async/pipeline 0.1.3
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/README.md +68 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -0
- package/dist/core.d.ts +2 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +2 -0
- package/dist/core.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/core/cache.d.ts +47 -0
- package/dist/internal/core/cache.d.ts.map +1 -0
- package/dist/internal/core/cache.js +81 -0
- package/dist/internal/core/cache.js.map +1 -0
- package/dist/internal/core/errors.d.ts +7 -0
- package/dist/internal/core/errors.d.ts.map +1 -0
- package/dist/internal/core/errors.js +14 -0
- package/dist/internal/core/errors.js.map +1 -0
- package/dist/internal/core/index.d.ts +347 -0
- package/dist/internal/core/index.d.ts.map +1 -0
- package/dist/internal/core/index.js +584 -0
- package/dist/internal/core/index.js.map +1 -0
- package/dist/internal/core/runtime.d.ts +111 -0
- package/dist/internal/core/runtime.d.ts.map +1 -0
- package/dist/internal/core/runtime.js +495 -0
- package/dist/internal/core/runtime.js.map +1 -0
- package/dist/internal/lima/index.d.ts +15 -0
- package/dist/internal/lima/index.d.ts.map +1 -0
- package/dist/internal/lima/index.js +65 -0
- package/dist/internal/lima/index.js.map +1 -0
- package/dist/internal/node/cli.d.ts +3 -0
- package/dist/internal/node/cli.d.ts.map +1 -0
- package/dist/internal/node/cli.js +410 -0
- package/dist/internal/node/cli.js.map +1 -0
- package/dist/internal/node/doctor.d.ts +7 -0
- package/dist/internal/node/doctor.d.ts.map +1 -0
- package/dist/internal/node/doctor.js +21 -0
- package/dist/internal/node/doctor.js.map +1 -0
- package/dist/internal/node/github.d.ts +48 -0
- package/dist/internal/node/github.d.ts.map +1 -0
- package/dist/internal/node/github.js +351 -0
- package/dist/internal/node/github.js.map +1 -0
- package/dist/internal/node/index.d.ts +8 -0
- package/dist/internal/node/index.d.ts.map +1 -0
- package/dist/internal/node/index.js +8 -0
- package/dist/internal/node/index.js.map +1 -0
- package/dist/internal/node/loader.d.ts +3 -0
- package/dist/internal/node/loader.d.ts.map +1 -0
- package/dist/internal/node/loader.js +10 -0
- package/dist/internal/node/loader.js.map +1 -0
- package/dist/internal/node/runner.d.ts +35 -0
- package/dist/internal/node/runner.d.ts.map +1 -0
- package/dist/internal/node/runner.js +527 -0
- package/dist/internal/node/runner.js.map +1 -0
- package/dist/internal/node/sources.d.ts +44 -0
- package/dist/internal/node/sources.d.ts.map +1 -0
- package/dist/internal/node/sources.js +187 -0
- package/dist/internal/node/sources.js.map +1 -0
- package/dist/internal/node/store.d.ts +23 -0
- package/dist/internal/node/store.d.ts.map +1 -0
- package/dist/internal/node/store.js +224 -0
- package/dist/internal/node/store.js.map +1 -0
- package/dist/internal/node/sync.d.ts +41 -0
- package/dist/internal/node/sync.d.ts.map +1 -0
- package/dist/internal/node/sync.js +332 -0
- package/dist/internal/node/sync.js.map +1 -0
- package/dist/lima.d.ts +2 -0
- package/dist/lima.d.ts.map +1 -0
- package/dist/lima.js +2 -0
- package/dist/lima.js.map +1 -0
- package/dist/node.d.ts +2 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +2 -0
- package/dist/node.js.map +1 -0
- package/dist/runtime.d.ts +2 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +2 -0
- package/dist/runtime.js.map +1 -0
- package/package.json +51 -0
package/README.md
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# @async/pipeline
|
|
2
|
+
|
|
3
|
+
Write the workflow in TypeScript, run it locally, and generate the thin GitHub Actions bootloader from the same `pipeline.ts`.
|
|
4
|
+
|
|
5
|
+
`@async/pipeline` is a small TypeScript pipeline engine for projects that want their everyday verification flow to be local-first instead of CI-only. Put the task graph in `pipeline.ts`, run it on your laptop with `async-pipeline`, and let GitHub Actions call the same graph with a thin workflow.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
pnpm add -D @async/pipeline
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Minimal Pipeline
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { definePipeline, job, sh, task, trigger } from "@async/pipeline";
|
|
17
|
+
|
|
18
|
+
export default definePipeline({
|
|
19
|
+
name: "app",
|
|
20
|
+
cache: "file:cache-first",
|
|
21
|
+
triggers: {
|
|
22
|
+
pr: trigger.github({ events: ["pull_request"] }),
|
|
23
|
+
main: trigger.github({ events: ["push"], branches: ["main"] })
|
|
24
|
+
},
|
|
25
|
+
tasks: {
|
|
26
|
+
typecheck: task({
|
|
27
|
+
inputs: ["src/**/*.ts", "package.json", "pnpm-lock.yaml"],
|
|
28
|
+
cache: "file:cache-first",
|
|
29
|
+
run: sh`pnpm typecheck`
|
|
30
|
+
}),
|
|
31
|
+
test: task({
|
|
32
|
+
dependsOn: ["typecheck"],
|
|
33
|
+
inputs: ["src/**/*.ts", "tests/**/*.ts", "package.json"],
|
|
34
|
+
cache: "file:cache-first",
|
|
35
|
+
run: sh`pnpm test`
|
|
36
|
+
})
|
|
37
|
+
},
|
|
38
|
+
jobs: {
|
|
39
|
+
verify: job({ target: "test", trigger: ["pr", "main"] })
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Run it:
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
pnpm async-pipeline run verify
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Inspect the run:
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
ls .async/runs
|
|
54
|
+
cat .async/runs/<run-id>/summary.md
|
|
55
|
+
cat .async/runs/<run-id>/execution.json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Generate the GitHub Actions bootloader:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
pnpm async-pipeline github generate
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Package Shape
|
|
65
|
+
|
|
66
|
+
Only `@async/pipeline` is published. The monorepo's core, node, runtime, and Lima implementation pieces are private/bundled behind this package's `dist/internal` output during build.
|
|
67
|
+
|
|
68
|
+
Full docs live in the repository README and `docs/` directory.
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,iCAAiC,CAAC"}
|
package/dist/cli.js
ADDED
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,iCAAiC,CAAC"}
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
|
package/dist/core.js
ADDED
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type CacheStrategy = "cache-first";
|
|
2
|
+
export type CacheRef = `${string}:${CacheStrategy}` | string;
|
|
3
|
+
export interface CacheStoreDefinition {
|
|
4
|
+
kind: "cache-store";
|
|
5
|
+
type: "memory" | "file" | "custom";
|
|
6
|
+
root?: string;
|
|
7
|
+
config?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface CacheUseOptions {
|
|
10
|
+
ttlMs?: number;
|
|
11
|
+
key?: unknown;
|
|
12
|
+
}
|
|
13
|
+
export interface CacheDirective {
|
|
14
|
+
kind: "async-pipeline.directive.cache";
|
|
15
|
+
ref: CacheRef;
|
|
16
|
+
options?: CacheUseOptions;
|
|
17
|
+
}
|
|
18
|
+
export interface CacheRegistryInput {
|
|
19
|
+
default?: CacheRef;
|
|
20
|
+
stores?: Record<string, CacheStoreDefinition>;
|
|
21
|
+
}
|
|
22
|
+
export interface CacheRegistryDefinition {
|
|
23
|
+
kind: "cache-registry";
|
|
24
|
+
default: CacheRef;
|
|
25
|
+
stores: Record<string, CacheStoreDefinition>;
|
|
26
|
+
use(ref?: CacheRef, options?: CacheUseOptions): CacheDirective;
|
|
27
|
+
}
|
|
28
|
+
export interface ParsedCacheRef {
|
|
29
|
+
ref: CacheRef;
|
|
30
|
+
store: string;
|
|
31
|
+
strategy: CacheStrategy;
|
|
32
|
+
}
|
|
33
|
+
export declare function memoryCache(): CacheStoreDefinition;
|
|
34
|
+
export declare function fileCache(options?: {
|
|
35
|
+
root?: string;
|
|
36
|
+
}): CacheStoreDefinition;
|
|
37
|
+
export declare function customCache(config?: Record<string, unknown>): CacheStoreDefinition;
|
|
38
|
+
export declare function redisCache(config?: Record<string, unknown>): CacheStoreDefinition;
|
|
39
|
+
export declare function defineCache(input?: CacheRegistryInput | Record<string, CacheStoreDefinition>): CacheRegistryDefinition;
|
|
40
|
+
export declare function defaultPipelineCache(): CacheRegistryDefinition;
|
|
41
|
+
export declare function defaultRuntimeCache(): CacheRegistryDefinition;
|
|
42
|
+
export declare const cache: CacheRegistryDefinition;
|
|
43
|
+
export declare function parseCacheRef(ref: CacheRef): ParsedCacheRef;
|
|
44
|
+
export declare function isCacheDirective(value: unknown): value is CacheDirective;
|
|
45
|
+
export declare function assertCacheStore(registry: CacheRegistryDefinition, ref: ParsedCacheRef): void;
|
|
46
|
+
export declare function mergeWithDefaultCacheStores(registry: CacheRegistryDefinition): CacheRegistryDefinition;
|
|
47
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAC1C,MAAM,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,aAAa,EAAE,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,gCAAgC,CAAC;IACvC,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC7C,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,cAAc,CAAC;CAChE;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;CACzB;AAID,wBAAgB,WAAW,IAAI,oBAAoB,CAElD;AAED,wBAAgB,SAAS,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,oBAAoB,CAE/E;AAED,wBAAgB,WAAW,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,oBAAoB,CAEtF;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,oBAAoB,CAErF;AAED,wBAAgB,WAAW,CAAC,KAAK,GAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAM,GAAG,uBAAuB,CAQ1H;AAED,wBAAgB,oBAAoB,IAAI,uBAAuB,CAK9D;AAED,wBAAgB,mBAAmB,IAAI,uBAAuB,CAK7D;AAED,eAAO,MAAM,KAAK,yBAAyB,CAAC;AAE5C,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,cAAc,CAS3D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAIxE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAQ7F;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,uBAAuB,GAAG,uBAAuB,CAMtG"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { pipelineError } from "./errors.js";
|
|
2
|
+
const knownStrategies = new Set(["cache-first"]);
|
|
3
|
+
export function memoryCache() {
|
|
4
|
+
return { kind: "cache-store", type: "memory" };
|
|
5
|
+
}
|
|
6
|
+
export function fileCache(options = {}) {
|
|
7
|
+
return { kind: "cache-store", type: "file", root: options.root };
|
|
8
|
+
}
|
|
9
|
+
export function customCache(config = {}) {
|
|
10
|
+
return { kind: "cache-store", type: "custom", config };
|
|
11
|
+
}
|
|
12
|
+
export function redisCache(config = {}) {
|
|
13
|
+
return { kind: "cache-store", type: "custom", config: { ...config, adapter: "redis" } };
|
|
14
|
+
}
|
|
15
|
+
export function defineCache(input = {}) {
|
|
16
|
+
const hasStoresEnvelope = "stores" in input || "default" in input;
|
|
17
|
+
const stores = hasStoresEnvelope
|
|
18
|
+
? { ...(input.stores ?? {}) }
|
|
19
|
+
: { ...input };
|
|
20
|
+
const defaultRef = hasStoresEnvelope ? (input.default ?? "memory:cache-first") : "memory:cache-first";
|
|
21
|
+
return makeCacheRegistry(defaultRef, stores);
|
|
22
|
+
}
|
|
23
|
+
export function defaultPipelineCache() {
|
|
24
|
+
return makeCacheRegistry("file:cache-first", {
|
|
25
|
+
memory: memoryCache(),
|
|
26
|
+
file: fileCache({ root: ".async/cache/tasks" })
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export function defaultRuntimeCache() {
|
|
30
|
+
return makeCacheRegistry("memory:cache-first", {
|
|
31
|
+
memory: memoryCache(),
|
|
32
|
+
file: fileCache({ root: ".async/cache/runtime" })
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
export const cache = defaultPipelineCache();
|
|
36
|
+
export function parseCacheRef(ref) {
|
|
37
|
+
const [store, strategy = "cache-first", extra] = String(ref).split(":");
|
|
38
|
+
if (!store || extra !== undefined) {
|
|
39
|
+
throw pipelineError("ASYNC_PIPELINE_INVALID_CACHE_REF", `Invalid cache reference "${ref}". Use "store:strategy".`, { ref });
|
|
40
|
+
}
|
|
41
|
+
if (!knownStrategies.has(strategy)) {
|
|
42
|
+
throw pipelineError("ASYNC_PIPELINE_UNKNOWN_CACHE_STRATEGY", `Unknown cache strategy "${strategy}" in "${ref}".`, { ref, strategy });
|
|
43
|
+
}
|
|
44
|
+
return { ref, store, strategy: strategy };
|
|
45
|
+
}
|
|
46
|
+
export function isCacheDirective(value) {
|
|
47
|
+
return Boolean(value)
|
|
48
|
+
&& typeof value === "object"
|
|
49
|
+
&& value.kind === "async-pipeline.directive.cache";
|
|
50
|
+
}
|
|
51
|
+
export function assertCacheStore(registry, ref) {
|
|
52
|
+
if (!registry.stores[ref.store]) {
|
|
53
|
+
throw pipelineError("ASYNC_PIPELINE_UNKNOWN_CACHE_STORE", `Unknown cache store "${ref.store}" in "${ref.ref}".`, {
|
|
54
|
+
ref: ref.ref,
|
|
55
|
+
store: ref.store,
|
|
56
|
+
availableStores: Object.keys(registry.stores).sort()
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function mergeWithDefaultCacheStores(registry) {
|
|
61
|
+
return makeCacheRegistry(registry.default, {
|
|
62
|
+
memory: memoryCache(),
|
|
63
|
+
file: fileCache({ root: ".async/cache/tasks" }),
|
|
64
|
+
...registry.stores
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function makeCacheRegistry(defaultRef, stores) {
|
|
68
|
+
return {
|
|
69
|
+
kind: "cache-registry",
|
|
70
|
+
default: defaultRef,
|
|
71
|
+
stores,
|
|
72
|
+
use(ref = defaultRef, options) {
|
|
73
|
+
return {
|
|
74
|
+
kind: "async-pipeline.directive.cache",
|
|
75
|
+
ref,
|
|
76
|
+
options
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class AsyncPipelineError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
readonly details?: unknown;
|
|
4
|
+
constructor(code: string, message: string, details?: unknown);
|
|
5
|
+
}
|
|
6
|
+
export declare function pipelineError(code: string, message: string, details?: unknown): AsyncPipelineError;
|
|
7
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEf,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAM7D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAElG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class AsyncPipelineError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
details;
|
|
4
|
+
constructor(code, message, details) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = "AsyncPipelineError";
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.details = details;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function pipelineError(code, message, details) {
|
|
12
|
+
return new AsyncPipelineError(code, message, details);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAS;IACb,OAAO,CAAW;IAE3B,YAAY,IAAY,EAAE,OAAe,EAAE,OAAiB;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe,EAAE,OAAiB;IAC5E,OAAO,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import { type CacheDirective, type CacheRef, type CacheRegistryDefinition, type CacheRegistryInput } from "./cache.js";
|
|
2
|
+
export * from "./cache.js";
|
|
3
|
+
export * from "./errors.js";
|
|
4
|
+
export type TaskId = string;
|
|
5
|
+
export type JobId = string;
|
|
6
|
+
export type TriggerId = string;
|
|
7
|
+
export type SourceId = string;
|
|
8
|
+
export type SourceType = "git" | "path";
|
|
9
|
+
export type EnvironmentBackend = "host" | "lima";
|
|
10
|
+
export type ExecutionMode = "manual" | "ci";
|
|
11
|
+
export type CacheSharing = "shared" | "private" | "locked";
|
|
12
|
+
export type TaskStatus = "pending" | "running" | "passed" | "failed" | "skipped" | "cached";
|
|
13
|
+
export type EnvVarMap = Record<string, string>;
|
|
14
|
+
export type EnvValue = string | EnvSecretRef | EnvVarRef;
|
|
15
|
+
export interface ShellCommand {
|
|
16
|
+
kind: "shell";
|
|
17
|
+
command: string;
|
|
18
|
+
}
|
|
19
|
+
export type DeferredShellCommandFactory = (context: TaskContext) => ShellCommand | Promise<ShellCommand>;
|
|
20
|
+
export interface DeferredShellCommand {
|
|
21
|
+
kind: "deferred-shell";
|
|
22
|
+
command: DeferredShellCommandFactory;
|
|
23
|
+
}
|
|
24
|
+
export type TaskRunFunction = (context: TaskContext) => void | Promise<void>;
|
|
25
|
+
export type TaskStep = ShellCommand | DeferredShellCommand | TaskRunFunction;
|
|
26
|
+
export interface CandidateContext {
|
|
27
|
+
dir: string;
|
|
28
|
+
fingerprint: string;
|
|
29
|
+
commit?: string;
|
|
30
|
+
ref?: string;
|
|
31
|
+
dirty?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface TaskSourceContext {
|
|
34
|
+
name: SourceId;
|
|
35
|
+
dir: string;
|
|
36
|
+
type: SourceType;
|
|
37
|
+
ref?: string;
|
|
38
|
+
commit?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface TaskContext {
|
|
41
|
+
taskId: TaskId;
|
|
42
|
+
runId: string;
|
|
43
|
+
cwd: string;
|
|
44
|
+
env: Record<string, string | undefined>;
|
|
45
|
+
root: {
|
|
46
|
+
dir: string;
|
|
47
|
+
};
|
|
48
|
+
candidate: CandidateContext;
|
|
49
|
+
source?: TaskSourceContext;
|
|
50
|
+
meta(metadata: Record<string, string | number | boolean | null>): void;
|
|
51
|
+
log(message: string): void;
|
|
52
|
+
sh: typeof sh;
|
|
53
|
+
}
|
|
54
|
+
export interface RetryPolicy {
|
|
55
|
+
attempts: number;
|
|
56
|
+
delayMs?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface CacheDirectory {
|
|
59
|
+
path: string;
|
|
60
|
+
sharing?: CacheSharing;
|
|
61
|
+
}
|
|
62
|
+
export interface TaskCacheOptions {
|
|
63
|
+
enabled?: boolean;
|
|
64
|
+
directories?: CacheDirectory[];
|
|
65
|
+
ref?: CacheRef;
|
|
66
|
+
store?: string;
|
|
67
|
+
strategy?: "cache-first";
|
|
68
|
+
ttlMs?: number;
|
|
69
|
+
key?: unknown;
|
|
70
|
+
}
|
|
71
|
+
export interface TaskRequirements {
|
|
72
|
+
tools?: string[];
|
|
73
|
+
secrets?: string[];
|
|
74
|
+
runtime?: "node" | "deno" | "shell";
|
|
75
|
+
}
|
|
76
|
+
export interface PipelineEnvironment {
|
|
77
|
+
backend: EnvironmentBackend;
|
|
78
|
+
vm?: string;
|
|
79
|
+
image?: string;
|
|
80
|
+
}
|
|
81
|
+
export interface EnvSecretRef {
|
|
82
|
+
kind: "async-pipeline.env.secret";
|
|
83
|
+
name: string;
|
|
84
|
+
}
|
|
85
|
+
export interface EnvVarRef {
|
|
86
|
+
kind: "async-pipeline.env.var";
|
|
87
|
+
name: string;
|
|
88
|
+
values?: EnvVarMap;
|
|
89
|
+
default?: string;
|
|
90
|
+
}
|
|
91
|
+
export interface TriggerDefinition {
|
|
92
|
+
type: "manual" | "github" | "schedule";
|
|
93
|
+
events?: string[];
|
|
94
|
+
cron?: string;
|
|
95
|
+
branches?: string[];
|
|
96
|
+
paths?: string[];
|
|
97
|
+
tags?: string[];
|
|
98
|
+
timezone?: string;
|
|
99
|
+
}
|
|
100
|
+
export type SyncRunner = "package" | "deno";
|
|
101
|
+
export type SyncSelection = "all" | string[];
|
|
102
|
+
export type SyncTargetSelector = {
|
|
103
|
+
package: string;
|
|
104
|
+
allowMultiple?: boolean;
|
|
105
|
+
} | {
|
|
106
|
+
path: string;
|
|
107
|
+
allowMultiple?: boolean;
|
|
108
|
+
};
|
|
109
|
+
export type SyncTargets = "root" | SyncTargetSelector[];
|
|
110
|
+
export interface GitHubSyncConfig {
|
|
111
|
+
workflow?: string;
|
|
112
|
+
lock?: string;
|
|
113
|
+
}
|
|
114
|
+
export type GitHubSyncInput = boolean | GitHubSyncConfig;
|
|
115
|
+
export interface TaskSyncConfig {
|
|
116
|
+
prefix?: string;
|
|
117
|
+
runners?: "all" | SyncRunner[];
|
|
118
|
+
targets?: SyncTargets;
|
|
119
|
+
jobs?: SyncSelection;
|
|
120
|
+
tasks?: SyncSelection;
|
|
121
|
+
scripts?: Record<string, string>;
|
|
122
|
+
}
|
|
123
|
+
export type TaskSyncInput = boolean | TaskSyncConfig;
|
|
124
|
+
export interface PipelineSyncConfig {
|
|
125
|
+
github?: GitHubSyncInput;
|
|
126
|
+
tasks?: TaskSyncInput;
|
|
127
|
+
}
|
|
128
|
+
export interface NormalizedGitHubSyncConfig {
|
|
129
|
+
enabled: boolean;
|
|
130
|
+
workflow: string;
|
|
131
|
+
lock: string;
|
|
132
|
+
}
|
|
133
|
+
export interface NormalizedTaskSyncConfig {
|
|
134
|
+
enabled: boolean;
|
|
135
|
+
prefix: string;
|
|
136
|
+
runners: "all" | SyncRunner[];
|
|
137
|
+
targets: SyncTargets;
|
|
138
|
+
jobs: SyncSelection;
|
|
139
|
+
tasks?: SyncSelection;
|
|
140
|
+
scripts: Record<string, string>;
|
|
141
|
+
}
|
|
142
|
+
export interface NormalizedPipelineSync {
|
|
143
|
+
github: NormalizedGitHubSyncConfig;
|
|
144
|
+
tasks: NormalizedTaskSyncConfig;
|
|
145
|
+
}
|
|
146
|
+
export interface DependsOnDirective {
|
|
147
|
+
kind: "async-pipeline.directive.dependsOn";
|
|
148
|
+
taskIds: TaskId[];
|
|
149
|
+
}
|
|
150
|
+
export type TaskDirective = CacheDirective | DependsOnDirective;
|
|
151
|
+
export interface TaskDefinition {
|
|
152
|
+
description?: string;
|
|
153
|
+
dependsOn?: TaskId[];
|
|
154
|
+
inputs?: string[];
|
|
155
|
+
outputs?: string[];
|
|
156
|
+
cache?: boolean | CacheRef | TaskCacheOptions;
|
|
157
|
+
retry?: number | RetryPolicy;
|
|
158
|
+
timeout?: string | number;
|
|
159
|
+
requires?: TaskRequirements;
|
|
160
|
+
environment?: PipelineEnvironment;
|
|
161
|
+
run?: TaskRunDefinition;
|
|
162
|
+
steps?: TaskRunItem[];
|
|
163
|
+
continuous?: boolean;
|
|
164
|
+
with?: TaskId[];
|
|
165
|
+
}
|
|
166
|
+
export type TaskRunItem = TaskStep | TaskDirective;
|
|
167
|
+
export type TaskRunDefinition = TaskRunItem | readonly TaskRunItem[];
|
|
168
|
+
export interface NormalizedTask extends Omit<TaskDefinition, "dependsOn" | "steps" | "run"> {
|
|
169
|
+
id: TaskId;
|
|
170
|
+
dependsOn: TaskId[];
|
|
171
|
+
steps: TaskStep[];
|
|
172
|
+
cache: TaskCacheOptions;
|
|
173
|
+
retry: RetryPolicy;
|
|
174
|
+
timeoutMs?: number;
|
|
175
|
+
inputs: string[];
|
|
176
|
+
outputs: string[];
|
|
177
|
+
source?: TaskSourceContext;
|
|
178
|
+
}
|
|
179
|
+
export interface SourceBaseDefinition {
|
|
180
|
+
pipeline?: string;
|
|
181
|
+
prepare?: TaskStep[];
|
|
182
|
+
}
|
|
183
|
+
export interface GitSourceDefinition extends SourceBaseDefinition {
|
|
184
|
+
type: "git";
|
|
185
|
+
url: string;
|
|
186
|
+
ref: string;
|
|
187
|
+
}
|
|
188
|
+
export interface PathSourceDefinition extends SourceBaseDefinition {
|
|
189
|
+
type: "path";
|
|
190
|
+
path: string;
|
|
191
|
+
writable?: boolean;
|
|
192
|
+
}
|
|
193
|
+
export type SourceDefinition = GitSourceDefinition | PathSourceDefinition;
|
|
194
|
+
export type NormalizedSource = (Omit<GitSourceDefinition, "prepare" | "pipeline"> & {
|
|
195
|
+
id: SourceId;
|
|
196
|
+
pipeline: string;
|
|
197
|
+
prepare: TaskStep[];
|
|
198
|
+
}) | (Omit<PathSourceDefinition, "prepare" | "pipeline"> & {
|
|
199
|
+
id: SourceId;
|
|
200
|
+
pipeline: string;
|
|
201
|
+
prepare: TaskStep[];
|
|
202
|
+
});
|
|
203
|
+
export interface JobDefinition {
|
|
204
|
+
description?: string;
|
|
205
|
+
target: TaskId | TaskId[];
|
|
206
|
+
trigger?: TriggerId[];
|
|
207
|
+
mode?: ExecutionMode;
|
|
208
|
+
env?: Record<string, EnvValue>;
|
|
209
|
+
github?: GitHubJobConfig;
|
|
210
|
+
}
|
|
211
|
+
export interface NormalizedJob extends Omit<JobDefinition, "target" | "trigger"> {
|
|
212
|
+
id: JobId;
|
|
213
|
+
target: TaskId[];
|
|
214
|
+
trigger: TriggerId[];
|
|
215
|
+
}
|
|
216
|
+
export type GitHubPermission = "read" | "write" | "none";
|
|
217
|
+
export interface GitHubJobConfig {
|
|
218
|
+
environment?: string;
|
|
219
|
+
permissions?: {
|
|
220
|
+
contents?: GitHubPermission;
|
|
221
|
+
idToken?: "write" | "none";
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
export interface PipelineDefinition {
|
|
225
|
+
name: string;
|
|
226
|
+
env?: Record<string, EnvValue>;
|
|
227
|
+
cache?: CacheRef | CacheRegistryDefinition | CacheRegistryInput | false;
|
|
228
|
+
namedInputs?: Record<string, string[]>;
|
|
229
|
+
taskDefaults?: Record<string, Partial<TaskDefinition>>;
|
|
230
|
+
triggers?: Record<TriggerId, TriggerDefinition>;
|
|
231
|
+
sync?: PipelineSyncConfig;
|
|
232
|
+
sources?: Record<SourceId, SourceDefinition>;
|
|
233
|
+
tasks: Record<TaskId, TaskDefinition>;
|
|
234
|
+
jobs: Record<JobId, JobDefinition>;
|
|
235
|
+
}
|
|
236
|
+
export interface NormalizedPipeline {
|
|
237
|
+
name: string;
|
|
238
|
+
env: Record<string, EnvValue>;
|
|
239
|
+
cache: CacheRegistryDefinition;
|
|
240
|
+
namedInputs: Record<string, string[]>;
|
|
241
|
+
triggers: Record<TriggerId, TriggerDefinition>;
|
|
242
|
+
sync: NormalizedPipelineSync;
|
|
243
|
+
sources: Record<SourceId, NormalizedSource>;
|
|
244
|
+
tasks: Record<TaskId, NormalizedTask>;
|
|
245
|
+
jobs: Record<JobId, NormalizedJob>;
|
|
246
|
+
}
|
|
247
|
+
export interface TaskResult {
|
|
248
|
+
id: TaskId;
|
|
249
|
+
status: TaskStatus;
|
|
250
|
+
startedAt?: string;
|
|
251
|
+
finishedAt?: string;
|
|
252
|
+
durationMs?: number;
|
|
253
|
+
attempts: number;
|
|
254
|
+
cacheKey?: string;
|
|
255
|
+
cacheHit?: boolean;
|
|
256
|
+
error?: string;
|
|
257
|
+
metadata?: Record<string, string | number | boolean | null>;
|
|
258
|
+
}
|
|
259
|
+
export interface ExecutionRecord {
|
|
260
|
+
id: string;
|
|
261
|
+
pipelineName: string;
|
|
262
|
+
jobId: JobId;
|
|
263
|
+
cwd: string;
|
|
264
|
+
startedAt: string;
|
|
265
|
+
finishedAt?: string;
|
|
266
|
+
status: "running" | "passed" | "failed";
|
|
267
|
+
mode: ExecutionMode;
|
|
268
|
+
tasks: TaskResult[];
|
|
269
|
+
sources?: Record<SourceId, ExecutionSourceRecord>;
|
|
270
|
+
}
|
|
271
|
+
export interface ExecutionSourceRecord {
|
|
272
|
+
id: SourceId;
|
|
273
|
+
type: SourceType;
|
|
274
|
+
dir: string;
|
|
275
|
+
pipeline: string;
|
|
276
|
+
url?: string;
|
|
277
|
+
path?: string;
|
|
278
|
+
ref?: string;
|
|
279
|
+
commit?: string;
|
|
280
|
+
dirty?: boolean;
|
|
281
|
+
prepare?: string[];
|
|
282
|
+
}
|
|
283
|
+
export interface TaskGraphNode {
|
|
284
|
+
id: TaskId;
|
|
285
|
+
dependsOn: TaskId[];
|
|
286
|
+
dependents: TaskId[];
|
|
287
|
+
}
|
|
288
|
+
export interface PipelineGraph {
|
|
289
|
+
tasks: TaskGraphNode[];
|
|
290
|
+
executionOrder: TaskId[];
|
|
291
|
+
}
|
|
292
|
+
export interface ParsedTaskRef {
|
|
293
|
+
source?: SourceId;
|
|
294
|
+
taskId: TaskId;
|
|
295
|
+
}
|
|
296
|
+
export interface ComposeSourcePipeline {
|
|
297
|
+
pipeline: NormalizedPipeline;
|
|
298
|
+
context?: TaskSourceContext;
|
|
299
|
+
}
|
|
300
|
+
export declare function sh(factory: DeferredShellCommandFactory): DeferredShellCommand;
|
|
301
|
+
export declare function sh(strings: TemplateStringsArray, ...values: unknown[]): ShellCommand;
|
|
302
|
+
export declare function task(definition: TaskDefinition): TaskDefinition;
|
|
303
|
+
export declare function task(definition: TaskDefinition, run: TaskRunDefinition): TaskDefinition;
|
|
304
|
+
export declare function job(definition: JobDefinition): JobDefinition;
|
|
305
|
+
declare function envVar(name: string): EnvVarRef;
|
|
306
|
+
declare function envVar(name: string, options: {
|
|
307
|
+
default: string;
|
|
308
|
+
}): EnvVarRef;
|
|
309
|
+
declare function envVar(name: string, values: EnvVarMap, options?: {
|
|
310
|
+
default?: string;
|
|
311
|
+
}): EnvVarRef;
|
|
312
|
+
export declare const env: {
|
|
313
|
+
secret(name: string): EnvSecretRef;
|
|
314
|
+
var: typeof envVar;
|
|
315
|
+
};
|
|
316
|
+
export declare const trigger: {
|
|
317
|
+
manual(): TriggerDefinition;
|
|
318
|
+
github(options: {
|
|
319
|
+
events: string[];
|
|
320
|
+
branches?: string[];
|
|
321
|
+
paths?: string[];
|
|
322
|
+
tags?: string[];
|
|
323
|
+
}): TriggerDefinition;
|
|
324
|
+
cron(cron: string, options?: {
|
|
325
|
+
timezone?: string;
|
|
326
|
+
}): TriggerDefinition;
|
|
327
|
+
schedule(cron: string): TriggerDefinition;
|
|
328
|
+
};
|
|
329
|
+
export declare function dependsOn(...taskIds: TaskId[]): DependsOnDirective;
|
|
330
|
+
export declare const source: {
|
|
331
|
+
git(definition: Omit<GitSourceDefinition, "type">): GitSourceDefinition;
|
|
332
|
+
path(definition: Omit<PathSourceDefinition, "type">): PathSourceDefinition;
|
|
333
|
+
};
|
|
334
|
+
export declare function linux(environment?: Omit<PipelineEnvironment, "backend"> & {
|
|
335
|
+
backend?: EnvironmentBackend;
|
|
336
|
+
}): PipelineEnvironment;
|
|
337
|
+
export declare function definePipeline(definition: PipelineDefinition): NormalizedPipeline;
|
|
338
|
+
export declare function normalizePipeline(definition: PipelineDefinition): NormalizedPipeline;
|
|
339
|
+
export declare function validatePipeline(pipeline: NormalizedPipeline): void;
|
|
340
|
+
export declare function composePipelines(root: NormalizedPipeline, sourcePipelines: Record<SourceId, ComposeSourcePipeline>): NormalizedPipeline;
|
|
341
|
+
export declare function parseTaskRef(taskRef: TaskId): ParsedTaskRef;
|
|
342
|
+
export declare function isNamespacedTaskRef(taskRef: TaskId): boolean;
|
|
343
|
+
export declare function namespaceTaskRef(sourceId: SourceId, taskId: TaskId): TaskId;
|
|
344
|
+
export declare function buildGraph(pipeline: NormalizedPipeline, targets?: TaskId[]): PipelineGraph;
|
|
345
|
+
export declare function tasksForJob(pipeline: NormalizedPipeline, jobId: JobId): PipelineGraph;
|
|
346
|
+
export declare function expandInputs(pipeline: NormalizedPipeline, inputs: string[]): string[];
|
|
347
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|