@catapultjs/deploy 0.5.0 → 0.6.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/build/bin/run.js +31 -1
- package/build/bin/run.js.map +1 -1
- package/build/recipes/adonisjs.d.ts +4 -3
- package/build/recipes/adonisjs.js +22 -32
- package/build/recipes/adonisjs.js.map +1 -1
- package/build/recipes/astro.js +15 -0
- package/build/recipes/astro.js.map +1 -0
- package/build/recipes/directus.d.ts +8 -0
- package/build/recipes/directus.js +30 -0
- package/build/recipes/directus.js.map +1 -0
- package/build/recipes/git.js +3 -3
- package/build/recipes/git.js.map +1 -1
- package/build/recipes/nuxt.d.ts +6 -0
- package/build/recipes/nuxt.js +18 -0
- package/build/recipes/nuxt.js.map +1 -0
- package/build/recipes/redis.d.ts +7 -0
- package/build/recipes/redis.js +14 -0
- package/build/recipes/redis.js.map +1 -0
- package/build/recipes/rsync.js +6 -5
- package/build/recipes/rsync.js.map +1 -1
- package/build/recipes/vitepress.js +14 -0
- package/build/recipes/vitepress.js.map +1 -0
- package/build/src/actions.d.ts +1 -0
- package/build/src/actions.js +17 -0
- package/build/src/actions.js.map +1 -0
- package/build/src/defaults.d.ts +3 -1
- package/build/src/defaults.js +37 -38
- package/build/src/defaults.js.map +1 -1
- package/build/src/define_config.js +5 -13
- package/build/src/define_config.js.map +1 -1
- package/build/src/enums.d.ts +0 -5
- package/build/src/enums.js +0 -4
- package/build/src/enums.js.map +1 -1
- package/build/src/package_manager.d.ts +1 -0
- package/build/src/package_manager.js +10 -1
- package/build/src/package_manager.js.map +1 -1
- package/build/src/pipeline/store.d.ts +1 -0
- package/build/src/pipeline/store.js +18 -14
- package/build/src/pipeline/store.js.map +1 -1
- package/build/src/pipeline.d.ts +3 -1
- package/build/src/pipeline.js +4 -0
- package/build/src/pipeline.js.map +1 -1
- package/build/src/task/runner.js +7 -4
- package/build/src/task/runner.js.map +1 -1
- package/build/src/types.d.ts +1 -3
- package/build/src/utils.d.ts +2 -0
- package/build/src/utils.js +20 -1
- package/build/src/utils.js.map +1 -1
- package/package.json +8 -2
- package/build/bin/test.js +0 -9
- package/build/bin/test.js.map +0 -1
- package/build/recipes/bun.d.ts +0 -8
- package/build/recipes/bun.js +0 -22
- package/build/recipes/bun.js.map +0 -1
- package/build/recipes/nodejs.d.ts +0 -9
- package/build/recipes/nodejs.js +0 -43
- package/build/recipes/nodejs.js.map +0 -1
- package/build/tests/package_manager.spec.js +0 -51
- package/build/tests/package_manager.spec.js.map +0 -1
- package/build/tests/pipeline.spec.d.ts +0 -1
- package/build/tests/pipeline.spec.js +0 -80
- package/build/tests/pipeline.spec.js.map +0 -1
- package/build/tests/store.spec.d.ts +0 -1
- package/build/tests/store.spec.js +0 -51
- package/build/tests/store.spec.js.map +0 -1
- package/build/tests/task.spec.d.ts +0 -1
- package/build/tests/task.spec.js +0 -108
- package/build/tests/task.spec.js.map +0 -1
- /package/build/{bin/test.d.ts → recipes/astro.d.ts} +0 -0
- /package/build/{tests/package_manager.spec.d.ts → recipes/vitepress.d.ts} +0 -0
package/build/src/enums.d.ts
CHANGED
package/build/src/enums.js
CHANGED
package/build/src/enums.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;CACF,CAAA;AAGV,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACA,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { bin } from "./task.js";
|
|
2
2
|
import { Context } from "./context.js";
|
|
3
|
+
import { PackageManager } from "./enums.js";
|
|
3
4
|
function getManager() {
|
|
4
|
-
return Context.get().config.packageManager ??
|
|
5
|
+
return Context.get().config.packageManager ?? PackageManager.NPM;
|
|
5
6
|
}
|
|
6
7
|
export function pm() {
|
|
7
8
|
return bin(getManager());
|
|
@@ -22,4 +23,12 @@ export function pmInstallProd() {
|
|
|
22
23
|
return `${pm()} install --frozen-lockfile --production`;
|
|
23
24
|
return `${pm()} ci --omit=dev`;
|
|
24
25
|
}
|
|
26
|
+
export function pmExec(command) {
|
|
27
|
+
const manager = getManager();
|
|
28
|
+
if (manager === PackageManager.BUN)
|
|
29
|
+
return `${pm()} x ${command}`;
|
|
30
|
+
if (manager === PackageManager.NPM)
|
|
31
|
+
return `${pm()} exec -- ${command}`;
|
|
32
|
+
return `${pm()} exec ${command}`;
|
|
33
|
+
}
|
|
25
34
|
//# sourceMappingURL=package_manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package_manager.js","sourceRoot":"","sources":["../../src/package_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"package_manager.js","sourceRoot":"","sources":["../../src/package_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,IAAI,cAAc,CAAC,GAAG,CAAA;AAClE,CAAC;AAGD,MAAM,UAAU,EAAE;IAChB,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;AAC1B,CAAC;AAGD,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,GAAG,EAAE,EAAE,4BAA4B,CAAA;IAClE,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,GAAG,EAAE,EAAE,4BAA4B,CAAA;IAClE,OAAO,GAAG,EAAE,EAAE,KAAK,CAAA;AACrB,CAAC;AAGD,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,GAAG,EAAE,EAAE,mCAAmC,CAAA;IACzE,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,GAAG,EAAE,EAAE,yCAAyC,CAAA;IAC/E,OAAO,GAAG,EAAE,EAAE,gBAAgB,CAAA;AAChC,CAAC;AAGD,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,IAAI,OAAO,KAAK,cAAc,CAAC,GAAG;QAAE,OAAO,GAAG,EAAE,EAAE,MAAM,OAAO,EAAE,CAAA;IACjE,IAAI,OAAO,KAAK,cAAc,CAAC,GAAG;QAAE,OAAO,GAAG,EAAE,EAAE,YAAY,OAAO,EAAE,CAAA;IACvE,OAAO,GAAG,EAAE,EAAE,SAAS,OAAO,EAAE,CAAA;AAClC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { TaskName } from '../types.ts';
|
|
|
2
2
|
export declare class PipelineStore {
|
|
3
3
|
#private;
|
|
4
4
|
get(): string[];
|
|
5
|
+
init(tasks: TaskName[]): void;
|
|
5
6
|
set(tasks: TaskName[]): void;
|
|
6
7
|
before(existing: TaskName, newTask: TaskName): void;
|
|
7
8
|
after(existing: TaskName, newTask: TaskName): void;
|
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
export class PipelineStore {
|
|
2
|
-
#pipeline = [
|
|
3
|
-
'deploy:lock',
|
|
4
|
-
'deploy:release',
|
|
5
|
-
'deploy:update_code',
|
|
6
|
-
'deploy:build:shared',
|
|
7
|
-
'deploy:build:copy',
|
|
8
|
-
'deploy:shared',
|
|
9
|
-
'deploy:publish',
|
|
10
|
-
'deploy:log_revision',
|
|
11
|
-
'deploy:healthcheck',
|
|
12
|
-
'deploy:unlock',
|
|
13
|
-
'deploy:cleanup',
|
|
14
|
-
];
|
|
2
|
+
#pipeline = [];
|
|
15
3
|
get() {
|
|
16
4
|
return [...this.#pipeline];
|
|
17
5
|
}
|
|
6
|
+
init(tasks) {
|
|
7
|
+
this.#pipeline = [];
|
|
8
|
+
for (const task of tasks) {
|
|
9
|
+
if (this.has(task))
|
|
10
|
+
this.remove(task);
|
|
11
|
+
this.#pipeline.push(task);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
18
14
|
set(tasks) {
|
|
19
|
-
this
|
|
15
|
+
this.init(tasks);
|
|
20
16
|
}
|
|
21
17
|
before(existing, newTask) {
|
|
18
|
+
if (existing === newTask)
|
|
19
|
+
return;
|
|
20
|
+
if (this.has(newTask))
|
|
21
|
+
this.remove(newTask);
|
|
22
22
|
const idx = this.#pipeline.indexOf(existing);
|
|
23
23
|
if (idx === -1)
|
|
24
24
|
throw new Error(`Task "${existing}" not found in pipeline`);
|
|
25
25
|
this.#pipeline.splice(idx, 0, newTask);
|
|
26
26
|
}
|
|
27
27
|
after(existing, newTask) {
|
|
28
|
+
if (existing === newTask)
|
|
29
|
+
return;
|
|
30
|
+
if (this.has(newTask))
|
|
31
|
+
this.remove(newTask);
|
|
28
32
|
const idx = this.#pipeline.indexOf(existing);
|
|
29
33
|
if (idx === -1)
|
|
30
34
|
throw new Error(`Task "${existing}" not found in pipeline`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/pipeline/store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,SAAS,GAAa
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/pipeline/store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,SAAS,GAAa,EAAE,CAAA;IAExB,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,CAAC,KAAiB;QACpB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAiB;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,QAAkB,EAAE,OAAiB;QAC1C,IAAI,QAAQ,KAAK,OAAO;YAAE,OAAM;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC5C,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,yBAAyB,CAAC,CAAA;QAC3E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,QAAkB,EAAE,OAAiB;QACzC,IAAI,QAAQ,KAAK,OAAO;YAAE,OAAM;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC5C,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,yBAAyB,CAAC,CAAA;QAC3E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,GAAG,CAAC,IAAc;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,IAAc;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,yBAAyB,CAAC,CAAA;QACvE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAC/B,CAAC;CACF"}
|
package/build/src/pipeline.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { TaskName } from './types.ts';
|
|
2
|
-
import { type LifecycleHook } from './pipeline/hooks.ts';
|
|
2
|
+
import { hooks, type LifecycleHook } from './pipeline/hooks.ts';
|
|
3
|
+
export { hooks };
|
|
3
4
|
export type { LifecycleHook } from './pipeline/hooks.ts';
|
|
4
5
|
export declare function getPipeline(): string[];
|
|
5
6
|
export declare function setPipeline(tasks: TaskName[]): void;
|
|
7
|
+
export declare function initPipeline(tasks: TaskName[]): void;
|
|
6
8
|
export declare function before(existing: TaskName, newTask: TaskName): void;
|
|
7
9
|
export declare function after(existing: TaskName, newTask: TaskName): void;
|
|
8
10
|
export declare function inPipeline(name: TaskName): boolean;
|
package/build/src/pipeline.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PipelineStore } from "./pipeline/store.js";
|
|
2
2
|
import { hooks } from "./pipeline/hooks.js";
|
|
3
|
+
export { hooks };
|
|
3
4
|
const pipeline = new PipelineStore();
|
|
4
5
|
export function getPipeline() {
|
|
5
6
|
return pipeline.get();
|
|
@@ -7,6 +8,9 @@ export function getPipeline() {
|
|
|
7
8
|
export function setPipeline(tasks) {
|
|
8
9
|
pipeline.set(tasks);
|
|
9
10
|
}
|
|
11
|
+
export function initPipeline(tasks) {
|
|
12
|
+
pipeline.init(tasks);
|
|
13
|
+
}
|
|
10
14
|
export function before(existing, newTask) {
|
|
11
15
|
pipeline.before(existing, newTask);
|
|
12
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAsB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAsB,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EAAE,KAAK,EAAE,CAAA;AAIhB,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;AAGpC,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAA;AACvB,CAAC;AAGD,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACrB,CAAC;AAGD,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAGD,MAAM,UAAU,MAAM,CAAC,QAAkB,EAAE,OAAiB;IAC1D,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAGD,MAAM,UAAU,KAAK,CAAC,QAAkB,EAAE,OAAiB;IACzD,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACnC,CAAC;AAGD,MAAM,UAAU,UAAU,CAAC,IAAc;IACvC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAGD,MAAM,UAAU,MAAM,CAAC,IAAc;IACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC;AAGD,MAAM,UAAU,OAAO,CAAC,EAAiB;IACvC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AACpB,CAAC;AAGD,MAAM,UAAU,QAAQ,CAAC,EAAiB;IACxC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AACrB,CAAC"}
|
package/build/src/task/runner.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Verbose } from "../enums.js";
|
|
2
2
|
import { ssh, scpArgs, scpTarget } from "../utils.js";
|
|
3
3
|
import { $ } from 'execa';
|
|
4
4
|
import { logger } from "../logger.js";
|
|
@@ -32,11 +32,8 @@ export class TaskRunner {
|
|
|
32
32
|
if (!this.#ctx)
|
|
33
33
|
return str;
|
|
34
34
|
const p = this.#ctx.paths;
|
|
35
|
-
const strategy = this.#ctx.config.strategy ?? Strategy.DIRECT;
|
|
36
|
-
const buildPath = strategy === Strategy.BUILD ? p.builder : p.release;
|
|
37
35
|
return str
|
|
38
36
|
.replace(/\{\{release_path\}\}/g, p.release)
|
|
39
|
-
.replace(/\{\{builder_path\}\}/g, buildPath)
|
|
40
37
|
.replace(/\{\{current_path\}\}/g, p.current)
|
|
41
38
|
.replace(/\{\{shared_path\}\}/g, p.shared)
|
|
42
39
|
.replace(/\{\{releases_path\}\}/g, p.releases)
|
|
@@ -65,6 +62,9 @@ export class TaskRunner {
|
|
|
65
62
|
? expanded
|
|
66
63
|
: posix.join(this.#ctx.host.deployPath, expanded);
|
|
67
64
|
const target = `${scpTarget(this.#ctx.host)}:${resolved}`;
|
|
65
|
+
const verbose = this.#ctx.config.verbose ?? Verbose.SILENT;
|
|
66
|
+
if (verbose >= Verbose.TRACE)
|
|
67
|
+
logger.cmd(`scp ${localPath} ${target}`);
|
|
68
68
|
await $ `scp ${args} ${localPath} ${target}`;
|
|
69
69
|
}
|
|
70
70
|
async download(remotePath, localPath) {
|
|
@@ -77,6 +77,9 @@ export class TaskRunner {
|
|
|
77
77
|
? expanded
|
|
78
78
|
: posix.join(this.#ctx.host.deployPath, expanded);
|
|
79
79
|
const source = `${scpTarget(this.#ctx.host)}:${resolved}`;
|
|
80
|
+
const verbose = this.#ctx.config.verbose ?? Verbose.SILENT;
|
|
81
|
+
if (verbose >= Verbose.TRACE)
|
|
82
|
+
logger.cmd(`scp ${source} ${localPath}`);
|
|
80
83
|
await $ `scp ${args} ${source} ${localPath}`;
|
|
81
84
|
}
|
|
82
85
|
async flush() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/task/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/task/runner.ts"],"names":[],"mappings":"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"}
|
package/build/src/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PackageManager, Verbose } from './enums.ts';
|
|
2
2
|
export interface BranchWithPrompt {
|
|
3
3
|
name: string;
|
|
4
4
|
ask: boolean;
|
|
@@ -29,7 +29,6 @@ export interface Paths {
|
|
|
29
29
|
shared: string;
|
|
30
30
|
cataConfig: string;
|
|
31
31
|
repo: string;
|
|
32
|
-
builder: string;
|
|
33
32
|
lock: string;
|
|
34
33
|
}
|
|
35
34
|
export interface TaskRegistry {
|
|
@@ -51,7 +50,6 @@ export interface Hooks {
|
|
|
51
50
|
export interface Config {
|
|
52
51
|
keepReleases?: number;
|
|
53
52
|
repository?: string;
|
|
54
|
-
strategy?: Strategy;
|
|
55
53
|
packageManager?: PackageManager;
|
|
56
54
|
hosts: Host[];
|
|
57
55
|
hooks?: Hooks;
|
package/build/src/utils.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Host, Paths } from './types.ts';
|
|
2
2
|
import { PackageManager } from './enums.ts';
|
|
3
|
+
export declare function getPackageLockFileName(cwd?: string): Promise<string | false>;
|
|
3
4
|
export declare function detectPackageManager(cwd?: string): Promise<PackageManager>;
|
|
4
5
|
export declare function findDeployFile(cwd?: string): Promise<string | null>;
|
|
5
6
|
export declare function q(value: unknown): string;
|
|
@@ -8,6 +9,7 @@ export declare function resolveSshArgs(host: Host): string[];
|
|
|
8
9
|
export declare function sshControlArgs(host: Host): string[];
|
|
9
10
|
export declare function scpArgs(host: Host): string[];
|
|
10
11
|
export declare function scpTarget(host: Host): string;
|
|
12
|
+
export declare function resolveHostStringValue(value: unknown, host: Host, key: string): string;
|
|
11
13
|
export declare function rsyncSshFlag(host: Host): string;
|
|
12
14
|
export declare function ssh(host: Host, command: string, opts?: {
|
|
13
15
|
quiet?: boolean;
|
package/build/src/utils.js
CHANGED
|
@@ -13,6 +13,16 @@ const PM_LOCK_FILES = [
|
|
|
13
13
|
['yarn.lock', PackageManager.YARN],
|
|
14
14
|
['package-lock.json', PackageManager.NPM],
|
|
15
15
|
];
|
|
16
|
+
export async function getPackageLockFileName(cwd = process.cwd()) {
|
|
17
|
+
for (const [lockFile] of PM_LOCK_FILES) {
|
|
18
|
+
try {
|
|
19
|
+
await access(resolve(cwd, lockFile));
|
|
20
|
+
return lockFile;
|
|
21
|
+
}
|
|
22
|
+
catch { }
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
16
26
|
export async function detectPackageManager(cwd = process.cwd()) {
|
|
17
27
|
for (const [lockFile, manager] of PM_LOCK_FILES) {
|
|
18
28
|
try {
|
|
@@ -46,7 +56,6 @@ export function getPaths(baseDir, releaseName) {
|
|
|
46
56
|
shared: `${baseDir}/shared`,
|
|
47
57
|
cataConfig: `${baseDir}/.catapult`,
|
|
48
58
|
repo: `${baseDir}/.catapult/repo`,
|
|
49
|
-
builder: `${baseDir}/.catapult/builder`,
|
|
50
59
|
lock: `${baseDir}/.catapult/deploy.lock`,
|
|
51
60
|
};
|
|
52
61
|
}
|
|
@@ -71,6 +80,16 @@ export function scpTarget(host) {
|
|
|
71
80
|
return host.ssh;
|
|
72
81
|
return `${host.ssh.user}@${host.ssh.host}`;
|
|
73
82
|
}
|
|
83
|
+
export function resolveHostStringValue(value, host, key) {
|
|
84
|
+
if (typeof value === 'string')
|
|
85
|
+
return value;
|
|
86
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
87
|
+
const resolved = value[host.name];
|
|
88
|
+
if (typeof resolved === 'string')
|
|
89
|
+
return resolved;
|
|
90
|
+
}
|
|
91
|
+
throw new Error(`[${host.name}] ${key} must be a string or an object keyed by host name`);
|
|
92
|
+
}
|
|
74
93
|
export function rsyncSshFlag(host) {
|
|
75
94
|
const controlOpts = sshControlArgs(host).join(' ');
|
|
76
95
|
const port = typeof host.ssh === 'object' && host.ssh.port ? ` -p ${host.ssh.port}` : '';
|
package/build/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;AAEpD,MAAM,aAAa,GAA+B;IAChD,CAAC,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC;IAChC,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC;IACjC,CAAC,gBAAgB,EAAE,cAAc,CAAC,IAAI,CAAC;IACvC,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC;IAClC,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG,CAAC;CAC1C,CAAA;AAGD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC5D,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;YACpC,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,cAAc,CAAC,GAAG,CAAA;AAC3B,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACtD,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;YAClB,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,CAAC,CAAC,KAAc;IAC9B,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,WAAmB;IAC3D,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG,OAAO,UAAU;QAC7B,QAAQ,EAAE,GAAG,OAAO,WAAW;QAC/B,OAAO,EAAE,GAAG,OAAO,aAAa,WAAW,EAAE;QAC7C,MAAM,EAAE,GAAG,OAAO,SAAS;QAC3B,UAAU,EAAE,GAAG,OAAO,YAAY;QAClC,IAAI,EAAE,GAAG,OAAO,iBAAiB;QACjC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@catapultjs/deploy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -13,7 +13,13 @@
|
|
|
13
13
|
"url": "git+https://github.com/catapultjs/deploy.git"
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
|
-
"build"
|
|
16
|
+
"build",
|
|
17
|
+
"!build/bin/test.js",
|
|
18
|
+
"!build/bin/test.d.ts",
|
|
19
|
+
"!build/bin/test.js.map",
|
|
20
|
+
"!build/docs",
|
|
21
|
+
"!build/examples",
|
|
22
|
+
"!build/tests"
|
|
17
23
|
],
|
|
18
24
|
"scripts": {
|
|
19
25
|
"lint": "eslint .",
|
package/build/bin/test.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { configure, processCLIArgs, run } from '@japa/runner';
|
|
2
|
-
import { assert } from '@japa/assert';
|
|
3
|
-
processCLIArgs(process.argv.splice(2));
|
|
4
|
-
configure({
|
|
5
|
-
files: ['tests/**/*.spec.ts'],
|
|
6
|
-
plugins: [assert()],
|
|
7
|
-
});
|
|
8
|
-
run();
|
|
9
|
-
//# sourceMappingURL=test.js.map
|
package/build/bin/test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../bin/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,SAAS,CAAC;IACR,KAAK,EAAE,CAAC,oBAAoB,CAAC;IAC7B,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;CACpB,CAAC,CAAA;AAEF,GAAG,EAAE,CAAA"}
|
package/build/recipes/bun.d.ts
DELETED
package/build/recipes/bun.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { task, inPipeline, desc, cd, run, bin, after, pm, pmInstall, pmInstallProd, } from "../index.js";
|
|
2
|
-
desc('Installs dependencies with frozen lockfile');
|
|
3
|
-
task('bun:install', () => {
|
|
4
|
-
cd('{{builder_path}}');
|
|
5
|
-
run(pmInstall());
|
|
6
|
-
});
|
|
7
|
-
desc('Installs production-only dependencies');
|
|
8
|
-
task('bun:install:production', () => {
|
|
9
|
-
cd('{{builder_path}}');
|
|
10
|
-
run(pmInstallProd());
|
|
11
|
-
});
|
|
12
|
-
desc('Builds the application');
|
|
13
|
-
task('bun:build', () => {
|
|
14
|
-
cd('{{builder_path}}');
|
|
15
|
-
run(`${bin(pm())} run build`);
|
|
16
|
-
});
|
|
17
|
-
after('deploy:update_code', 'bun:install');
|
|
18
|
-
after('deploy:build:shared', 'bun:build');
|
|
19
|
-
if (inPipeline('deploy:build:copy')) {
|
|
20
|
-
after('deploy:build:copy', 'bun:install:production');
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=bun.js.map
|
package/build/recipes/bun.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../../recipes/bun.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,EAAE,EACF,GAAG,EACH,GAAG,EACH,KAAK,EACL,EAAE,EACF,SAAS,EACT,aAAa,GACd,MAAM,aAAa,CAAA;AAUpB,IAAI,CAAC,4CAA4C,CAAC,CAAA;AAClD,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACtB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;AAClB,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,uCAAuC,CAAC,CAAA;AAC7C,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACtB,GAAG,CAAC,aAAa,EAAE,CAAC,CAAA;AACtB,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,wBAAwB,CAAC,CAAA;AAC9B,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACtB,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEF,KAAK,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAA;AAC1C,KAAK,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAA;AAEzC,IAAI,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACpC,KAAK,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAA;AACtD,CAAC"}
|
package/build/recipes/nodejs.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { task, inPipeline, desc, cd, run, bin, after, pm, pmInstall, pmInstallProd, } from "../index.js";
|
|
2
|
-
import { Strategy } from "../src/enums.js";
|
|
3
|
-
desc('Installs dependencies with frozen lockfile');
|
|
4
|
-
task('nodejs:install', ({ config }) => {
|
|
5
|
-
if (config.strategy === Strategy.BUILD) {
|
|
6
|
-
cd('{{builder_path}}');
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
cd('{{release_path}}');
|
|
10
|
-
}
|
|
11
|
-
run(pmInstall());
|
|
12
|
-
});
|
|
13
|
-
desc('Installs production-only dependencies');
|
|
14
|
-
task('nodejs:install:production', () => {
|
|
15
|
-
cd('{{release_path}}');
|
|
16
|
-
run(pmInstallProd());
|
|
17
|
-
});
|
|
18
|
-
desc('Builds the application');
|
|
19
|
-
task('nodejs:build', ({ config }) => {
|
|
20
|
-
if (config.strategy === Strategy.BUILD) {
|
|
21
|
-
cd('{{builder_path}}');
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
cd('{{release_path}}');
|
|
25
|
-
}
|
|
26
|
-
run(`${bin(pm())} run build`);
|
|
27
|
-
});
|
|
28
|
-
desc('Runs the test suite');
|
|
29
|
-
task('nodejs:test', ({ config }) => {
|
|
30
|
-
if (config.strategy === Strategy.BUILD) {
|
|
31
|
-
cd('{{builder_path}}');
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
cd('{{release_path}}');
|
|
35
|
-
}
|
|
36
|
-
run(`${bin(pm())} test`);
|
|
37
|
-
});
|
|
38
|
-
after('deploy:update_code', 'nodejs:install');
|
|
39
|
-
after('deploy:build:shared', 'nodejs:build');
|
|
40
|
-
if (inPipeline('deploy:build:copy')) {
|
|
41
|
-
after('deploy:build:copy', 'nodejs:install:production');
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=nodejs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../recipes/nodejs.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,EAAE,EACF,GAAG,EACH,GAAG,EACH,KAAK,EACL,EAAE,EACF,SAAS,EACT,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAW1C,IAAI,CAAC,4CAA4C,CAAC,CAAA;AAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAe,EAAE,EAAE;IACjD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvC,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACxB,CAAC;IAED,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;AAClB,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,uCAAuC,CAAC,CAAA;AAC7C,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACtB,GAAG,CAAC,aAAa,EAAE,CAAC,CAAA;AACtB,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,wBAAwB,CAAC,CAAA;AAC9B,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,EAAe,EAAE,EAAE;IAC/C,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvC,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACxB,CAAC;IACD,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,qBAAqB,CAAC,CAAA;AAC3B,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAe,EAAE,EAAE;IAC9C,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvC,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACxB,CAAC;IACD,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;AAC1B,CAAC,CAAC,CAAA;AAEF,KAAK,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA;AAC7C,KAAK,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAA;AAE5C,IAAI,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACpC,KAAK,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAA;AACzD,CAAC"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { test } from '@japa/runner';
|
|
2
|
-
import { Context } from "../src/context.js";
|
|
3
|
-
import { pm, pmInstall, pmInstallProd } from "../src/package_manager.js";
|
|
4
|
-
import { PackageManager } from "../src/enums.js";
|
|
5
|
-
function setManager(packageManager) {
|
|
6
|
-
Context.set({
|
|
7
|
-
config: { keepReleases: 5, hosts: [], packageManager },
|
|
8
|
-
release: '2024-01-01',
|
|
9
|
-
hooks: {},
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
test.group('package_manager', (group) => {
|
|
13
|
-
group.each.teardown(() => setManager(PackageManager.NPM));
|
|
14
|
-
test('pm() returns npm by default', ({ assert }) => {
|
|
15
|
-
setManager(undefined);
|
|
16
|
-
assert.equal(pm(), 'npm');
|
|
17
|
-
});
|
|
18
|
-
test('pm() returns pnpm when set', ({ assert }) => {
|
|
19
|
-
setManager(PackageManager.PNPM);
|
|
20
|
-
assert.equal(pm(), 'pnpm');
|
|
21
|
-
});
|
|
22
|
-
test('pm() returns yarn when set', ({ assert }) => {
|
|
23
|
-
setManager(PackageManager.YARN);
|
|
24
|
-
assert.equal(pm(), 'yarn');
|
|
25
|
-
});
|
|
26
|
-
test('pmInstall() returns npm ci for npm', ({ assert }) => {
|
|
27
|
-
setManager(PackageManager.NPM);
|
|
28
|
-
assert.equal(pmInstall(), 'npm ci');
|
|
29
|
-
});
|
|
30
|
-
test('pmInstall() returns frozen lockfile command for pnpm', ({ assert }) => {
|
|
31
|
-
setManager(PackageManager.PNPM);
|
|
32
|
-
assert.equal(pmInstall(), 'pnpm install --frozen-lockfile');
|
|
33
|
-
});
|
|
34
|
-
test('pmInstall() returns frozen lockfile command for yarn', ({ assert }) => {
|
|
35
|
-
setManager(PackageManager.YARN);
|
|
36
|
-
assert.equal(pmInstall(), 'yarn install --frozen-lockfile');
|
|
37
|
-
});
|
|
38
|
-
test('pmInstallProd() returns npm ci --omit=dev for npm', ({ assert }) => {
|
|
39
|
-
setManager(PackageManager.NPM);
|
|
40
|
-
assert.equal(pmInstallProd(), 'npm ci --omit=dev');
|
|
41
|
-
});
|
|
42
|
-
test('pmInstallProd() returns pnpm install --frozen-lockfile --prod for pnpm', ({ assert }) => {
|
|
43
|
-
setManager(PackageManager.PNPM);
|
|
44
|
-
assert.equal(pmInstallProd(), 'pnpm install --frozen-lockfile --prod');
|
|
45
|
-
});
|
|
46
|
-
test('pmInstallProd() returns yarn install --frozen-lockfile --production for yarn', ({ assert, }) => {
|
|
47
|
-
setManager(PackageManager.YARN);
|
|
48
|
-
assert.equal(pmInstallProd(), 'yarn install --frozen-lockfile --production');
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=package_manager.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"package_manager.spec.js","sourceRoot":"","sources":["../../tests/package_manager.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { test } from '@japa/runner';
|
|
2
|
-
import { getPipeline, setPipeline, before, after, remove, inPipeline, onSetup, onStatus, } from "../src/pipeline.js";
|
|
3
|
-
import { hooks } from "../src/pipeline/hooks.js";
|
|
4
|
-
const DEFAULT_PIPELINE = [
|
|
5
|
-
'deploy:lock',
|
|
6
|
-
'deploy:release',
|
|
7
|
-
'deploy:update_code',
|
|
8
|
-
'deploy:shared',
|
|
9
|
-
'deploy:publish',
|
|
10
|
-
'deploy:log_revision',
|
|
11
|
-
'deploy:healthcheck',
|
|
12
|
-
'deploy:unlock',
|
|
13
|
-
'deploy:cleanup',
|
|
14
|
-
];
|
|
15
|
-
test.group('pipeline', (group) => {
|
|
16
|
-
group.each.setup(() => setPipeline(DEFAULT_PIPELINE));
|
|
17
|
-
test('getPipeline returns the default pipeline', ({ assert }) => {
|
|
18
|
-
assert.deepEqual(getPipeline(), DEFAULT_PIPELINE);
|
|
19
|
-
});
|
|
20
|
-
test('getPipeline returns a copy, not a reference', ({ assert }) => {
|
|
21
|
-
const a = getPipeline();
|
|
22
|
-
const b = getPipeline();
|
|
23
|
-
assert.notStrictEqual(a, b);
|
|
24
|
-
});
|
|
25
|
-
test('setPipeline replaces the entire pipeline', ({ assert }) => {
|
|
26
|
-
setPipeline(['deploy:release', 'deploy:publish']);
|
|
27
|
-
assert.deepEqual(getPipeline(), ['deploy:release', 'deploy:publish']);
|
|
28
|
-
});
|
|
29
|
-
test('before inserts a task before an existing one', ({ assert }) => {
|
|
30
|
-
before('deploy:publish', 'my:task');
|
|
31
|
-
const pipeline = getPipeline();
|
|
32
|
-
const idx = pipeline.indexOf('my:task');
|
|
33
|
-
assert.isAbove(idx, -1);
|
|
34
|
-
assert.equal(pipeline[idx + 1], 'deploy:publish');
|
|
35
|
-
});
|
|
36
|
-
test('before throws when the reference task does not exist', ({ assert }) => {
|
|
37
|
-
assert.throws(() => before('nonexistent:task', 'my:task'), /not found in pipeline/);
|
|
38
|
-
});
|
|
39
|
-
test('after inserts a task after an existing one', ({ assert }) => {
|
|
40
|
-
after('deploy:publish', 'my:task');
|
|
41
|
-
const pipeline = getPipeline();
|
|
42
|
-
const idx = pipeline.indexOf('my:task');
|
|
43
|
-
assert.isAbove(idx, -1);
|
|
44
|
-
assert.equal(pipeline[idx - 1], 'deploy:publish');
|
|
45
|
-
});
|
|
46
|
-
test('after throws when the reference task does not exist', ({ assert }) => {
|
|
47
|
-
assert.throws(() => after('nonexistent:task', 'my:task'), /not found in pipeline/);
|
|
48
|
-
});
|
|
49
|
-
test('remove removes a task from the pipeline', ({ assert }) => {
|
|
50
|
-
remove('deploy:healthcheck');
|
|
51
|
-
assert.notInclude(getPipeline(), 'deploy:healthcheck');
|
|
52
|
-
});
|
|
53
|
-
test('remove throws when the task does not exist', ({ assert }) => {
|
|
54
|
-
assert.throws(() => remove('nonexistent:task'), /not found in pipeline/);
|
|
55
|
-
});
|
|
56
|
-
test('inPipeline returns true when task is present', ({ assert }) => {
|
|
57
|
-
assert.isTrue(inPipeline('deploy:publish'));
|
|
58
|
-
});
|
|
59
|
-
test('inPipeline returns false when task is absent', ({ assert }) => {
|
|
60
|
-
assert.isFalse(inPipeline('nonexistent:task'));
|
|
61
|
-
});
|
|
62
|
-
test('inPipeline reflects pipeline changes', ({ assert }) => {
|
|
63
|
-
assert.isTrue(inPipeline('deploy:healthcheck'));
|
|
64
|
-
remove('deploy:healthcheck');
|
|
65
|
-
assert.isFalse(inPipeline('deploy:healthcheck'));
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
test.group('pipeline — hooks', () => {
|
|
69
|
-
test('onSetup registers a setup hook', ({ assert }) => {
|
|
70
|
-
const count = hooks.getSetup().length;
|
|
71
|
-
onSetup(async () => { });
|
|
72
|
-
assert.equal(hooks.getSetup().length, count + 1);
|
|
73
|
-
});
|
|
74
|
-
test('onStatus registers a status hook', ({ assert }) => {
|
|
75
|
-
const count = hooks.getStatus().length;
|
|
76
|
-
onStatus(async () => { });
|
|
77
|
-
assert.equal(hooks.getStatus().length, count + 1);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
//# sourceMappingURL=pipeline.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.spec.js","sourceRoot":"","sources":["../../tests/pipeline.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|