@catapultjs/deploy 0.0.5 → 0.1.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 +4 -2
- package/build/bin/run.js.map +1 -1
- package/build/commands/deploy.js +3 -1
- package/build/commands/deploy.js.map +1 -1
- package/build/commands/list_tasks.js +5 -5
- package/build/commands/list_tasks.js.map +1 -1
- package/build/commands/{list_pipeline.js → pipeline.js} +2 -2
- package/build/commands/pipeline.js.map +1 -0
- package/build/commands/run.d.ts +7 -0
- package/build/commands/run.js +31 -0
- package/build/commands/run.js.map +1 -0
- package/build/commands/status.js +12 -0
- package/build/commands/status.js.map +1 -1
- package/build/recipes/adonisjs.js +32 -8
- package/build/recipes/adonisjs.js.map +1 -1
- package/build/recipes/bun.d.ts +7 -0
- package/build/recipes/bun.js +12 -6
- package/build/recipes/bun.js.map +1 -1
- package/build/recipes/git.d.ts +1 -0
- package/build/recipes/git.js +43 -6
- package/build/recipes/git.js.map +1 -1
- package/build/recipes/nodejs.js +32 -9
- package/build/recipes/nodejs.js.map +1 -1
- package/build/recipes/pm2.d.ts +2 -1
- package/build/recipes/pm2.js +33 -22
- package/build/recipes/pm2.js.map +1 -1
- package/build/recipes/rsync.js +2 -1
- package/build/recipes/rsync.js.map +1 -1
- package/build/src/defaults.d.ts +1 -0
- package/build/src/defaults.js +53 -10
- package/build/src/defaults.js.map +1 -1
- package/build/src/define_config.js +12 -2
- package/build/src/define_config.js.map +1 -1
- package/build/src/deployer.js +1 -0
- package/build/src/deployer.js.map +1 -1
- package/build/src/enums.d.ts +12 -0
- package/build/src/enums.js +11 -0
- package/build/src/enums.js.map +1 -0
- package/build/src/package_manager.js +3 -3
- package/build/src/package_manager.js.map +1 -1
- package/build/src/pipeline/store.js +2 -0
- package/build/src/pipeline/store.js.map +1 -1
- package/build/src/store.d.ts +1 -0
- package/build/src/store.js +3 -0
- package/build/src/store.js.map +1 -1
- package/build/src/task/runner.d.ts +6 -5
- package/build/src/task/runner.js +7 -3
- package/build/src/task/runner.js.map +1 -1
- package/build/src/task/store.d.ts +2 -0
- package/build/src/task/store.js +13 -1
- package/build/src/task/store.js.map +1 -1
- package/build/src/task.d.ts +2 -0
- package/build/src/task.js +6 -0
- package/build/src/task.js.map +1 -1
- package/build/src/types.d.ts +8 -1
- package/build/src/utils.d.ts +2 -1
- package/build/src/utils.js +11 -7
- package/build/src/utils.js.map +1 -1
- package/build/tests/package_manager.spec.js +16 -15
- package/build/tests/package_manager.spec.js.map +1 -1
- package/package.json +2 -1
- package/build/commands/list_pipeline.js.map +0 -1
- /package/build/commands/{list_pipeline.d.ts → pipeline.d.ts} +0 -0
package/build/recipes/rsync.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { $ } from 'execa';
|
|
2
|
-
import { task, get, isVerbose } from "../index.js";
|
|
2
|
+
import { task, desc, get, isVerbose } from "../index.js";
|
|
3
3
|
import { rsyncSshFlag, resolveSshArgs } from "../src/utils.js";
|
|
4
|
+
desc('Transfers files to the release directory via rsync');
|
|
4
5
|
task('deploy:update_code', async ({ host, paths, logger }) => {
|
|
5
6
|
const [target] = resolveSshArgs(host);
|
|
6
7
|
const source = get('rsync_source_path', './');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsync.js","sourceRoot":"","sources":["../../recipes/rsync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AACzB,OAAO,EAAoB,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"rsync.js","sourceRoot":"","sources":["../../recipes/rsync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AACzB,OAAO,EAAoB,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE9D,IAAI,CAAC,oDAAoD,CAAC,CAAA;AAC1D,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAe,EAAE,EAAE;IACxE,MAAM,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAC7C,MAAM,IAAI,GAAa,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IACxD,KAAK,MAAM,OAAO,IAAI,GAAG,CAAW,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;IACnC,CAAC;IACD,IAAI,SAAS,EAAE;QACb,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;IAC7E,MAAM,CAAC,CAAA,SAAS,IAAI,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAA;AAC9D,CAAC,CAAC,CAAA"}
|
package/build/src/defaults.d.ts
CHANGED
package/build/src/defaults.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { $ } from 'execa';
|
|
2
2
|
import { q, ssh, sleep } from "./utils.js";
|
|
3
|
-
import { task, run, isVerbose } from "./task.js";
|
|
3
|
+
import { task, desc, run, isVerbose } from "./task.js";
|
|
4
4
|
import { get } from "./store.js";
|
|
5
|
-
|
|
5
|
+
desc('Creates a deploy lock to prevent concurrent deployments');
|
|
6
|
+
task('deploy:lock', async ({ host, release, paths }) => {
|
|
6
7
|
try {
|
|
7
8
|
await ssh(host, `
|
|
8
9
|
set -e
|
|
@@ -10,13 +11,14 @@ task('deploy:lock', async ({ host, deployCtx, paths }) => {
|
|
|
10
11
|
echo "Deploy lock already present: ${paths.lock}" >&2
|
|
11
12
|
exit 1
|
|
12
13
|
fi
|
|
13
|
-
echo ${q(
|
|
14
|
+
echo ${q(release)} > ${q(paths.lock)}
|
|
14
15
|
`, { quiet: true });
|
|
15
16
|
}
|
|
16
17
|
catch (error) {
|
|
17
18
|
throw new Error(error.stderr?.trim() || error.message);
|
|
18
19
|
}
|
|
19
20
|
});
|
|
21
|
+
desc('Removes the deploy lock');
|
|
20
22
|
task('deploy:unlock', async ({ host, paths }) => {
|
|
21
23
|
await ssh(host, `
|
|
22
24
|
set +e
|
|
@@ -24,10 +26,13 @@ task('deploy:unlock', async ({ host, paths }) => {
|
|
|
24
26
|
true
|
|
25
27
|
`, { quiet: true });
|
|
26
28
|
});
|
|
29
|
+
desc('Creates the release directory on the server');
|
|
27
30
|
task('deploy:release', () => {
|
|
28
31
|
run('mkdir -p {{release_path}}');
|
|
29
32
|
});
|
|
33
|
+
desc('Transfers code to the release directory (overridden by recipe)');
|
|
30
34
|
task('deploy:update_code', async () => { });
|
|
35
|
+
desc('Symlinks shared directories and files into the release');
|
|
31
36
|
task('deploy:shared', () => {
|
|
32
37
|
const dirs = get('shared_dirs', []);
|
|
33
38
|
const files = get('shared_files', []);
|
|
@@ -42,11 +47,41 @@ task('deploy:shared', () => {
|
|
|
42
47
|
run(`ln -sfn {{shared_path}}/${f} {{release_path}}/${f}`);
|
|
43
48
|
}
|
|
44
49
|
});
|
|
50
|
+
desc('Symlinks shared directories and files into the build');
|
|
51
|
+
task('deploy:build:shared', () => {
|
|
52
|
+
const dirs = get('shared_dirs', []);
|
|
53
|
+
const files = get('shared_files', []);
|
|
54
|
+
for (const dir of dirs) {
|
|
55
|
+
const d = dir.replace(/^\//, '');
|
|
56
|
+
run(`rm -rf {{builder_path}}/${d}`);
|
|
57
|
+
run(`ln -sfn {{shared_path}}/${d} {{builder_path}}/${d}`);
|
|
58
|
+
}
|
|
59
|
+
for (const file of files) {
|
|
60
|
+
const f = file.replace(/^\//, '');
|
|
61
|
+
run(`rm -f {{builder_path}}/${f}`);
|
|
62
|
+
run(`ln -sfn {{shared_path}}/${f} {{builder_path}}/${f}`);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
desc('Copies build output from build directory to the release');
|
|
66
|
+
task('deploy:build:copy', () => {
|
|
67
|
+
const output = get('build_output', 'build');
|
|
68
|
+
run(`cp -r {{builder_path}}/${output}/. {{release_path}}/`);
|
|
69
|
+
});
|
|
70
|
+
desc('Switches current symlink to the new release');
|
|
45
71
|
task('deploy:publish', () => {
|
|
46
72
|
run('ln -sfn {{release_path}} {{current_path}}');
|
|
47
73
|
});
|
|
48
|
-
|
|
49
|
-
|
|
74
|
+
desc('Appends branch, commit and user info to revisions.log');
|
|
75
|
+
task('deploy:log_revision', async ({ host, paths, release, logger }) => {
|
|
76
|
+
let branch = typeof host.branch === 'object' ? host.branch.name : (host.branch ?? 'unknown');
|
|
77
|
+
if (branch === 'unknown') {
|
|
78
|
+
try {
|
|
79
|
+
if (isVerbose())
|
|
80
|
+
logger.cmd('git rev-parse --abbrev-ref HEAD');
|
|
81
|
+
branch = (await $ `git rev-parse --abbrev-ref HEAD`).stdout.trim();
|
|
82
|
+
}
|
|
83
|
+
catch { }
|
|
84
|
+
}
|
|
50
85
|
let commit = 'unknown';
|
|
51
86
|
let user = 'unknown';
|
|
52
87
|
try {
|
|
@@ -58,10 +93,17 @@ task('deploy:log_revision', async ({ host, deployCtx, logger }) => {
|
|
|
58
93
|
user = (await $ `git config user.name`).stdout.trim();
|
|
59
94
|
}
|
|
60
95
|
catch { }
|
|
61
|
-
const line =
|
|
62
|
-
|
|
96
|
+
const line = JSON.stringify({
|
|
97
|
+
release,
|
|
98
|
+
branch,
|
|
99
|
+
commit,
|
|
100
|
+
user,
|
|
101
|
+
date: new Date().toISOString(),
|
|
102
|
+
});
|
|
103
|
+
const logFile = `${paths.cataConfig}/revisions.log`;
|
|
63
104
|
await ssh(host, `echo ${q(line)} >> ${q(logFile)}`);
|
|
64
105
|
});
|
|
106
|
+
desc('Checks that the application is responding after deployment');
|
|
65
107
|
task('deploy:healthcheck', async ({ host, logger }) => {
|
|
66
108
|
const { url, retries, delayMs = 3_000 } = host.healthcheck ?? {};
|
|
67
109
|
logger.step(host.name, `healthcheck ${url}`);
|
|
@@ -85,18 +127,19 @@ task('deploy:healthcheck', async ({ host, logger }) => {
|
|
|
85
127
|
}
|
|
86
128
|
throw new Error(`[${host.name}] healthcheck failed: ${url}`);
|
|
87
129
|
});
|
|
88
|
-
|
|
130
|
+
desc('Removes old releases, keeping the last N defined by keepReleases');
|
|
131
|
+
task('deploy:cleanup', async ({ config, host, paths }) => {
|
|
89
132
|
await ssh(host, `
|
|
90
133
|
set -e
|
|
91
134
|
[ -d ${q(paths.releases)} ] || exit 0
|
|
92
135
|
cd ${q(paths.releases)}
|
|
93
136
|
|
|
94
137
|
count=$(ls -1dt */ 2>/dev/null | wc -l | tr -d ' ')
|
|
95
|
-
if [ "$count" -le ${
|
|
138
|
+
if [ "$count" -le ${config.keepReleases} ]; then
|
|
96
139
|
exit 0
|
|
97
140
|
fi
|
|
98
141
|
|
|
99
|
-
ls -1dt */ | tail -n +$(( ${
|
|
142
|
+
ls -1dt */ | tail -n +$(( ${config.keepReleases} + 1 )) | xargs -r rm -rf
|
|
100
143
|
`);
|
|
101
144
|
});
|
|
102
145
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAoB,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAoB,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAqBhC,IAAI,CAAC,yDAAyD,CAAC,CAAA;AAC/D,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAe,EAAE,EAAE;IAClE,IAAI,CAAC;QACH,MAAM,GAAG,CACP,IAAI,EACJ;;gBAEU,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;6CACgB,KAAK,CAAC,IAAI;;;aAG1C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;KACrC,EACC,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAE,KAAa,CAAC,MAAM,EAAE,IAAI,EAAE,IAAK,KAAe,CAAC,OAAO,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,yBAAyB,CAAC,CAAA;AAC/B,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAe,EAAE,EAAE;IAC3D,MAAM,GAAG,CACP,IAAI,EACJ;;YAEQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;;GAEtB,EACC,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,6CAA6C,CAAC,CAAA;AACnD,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC1B,GAAG,CAAC,2BAA2B,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,gEAAgE,CAAC,CAAA;AACtE,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAA;AAE1C,IAAI,CAAC,wDAAwD,CAAC,CAAA;AAC9D,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;IACzB,MAAM,IAAI,GAAa,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAa,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IAE/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAChC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAA;QACnC,GAAG,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACjC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAA;QAClC,GAAG,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,sDAAsD,CAAC,CAAA;AAC5D,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAC/B,MAAM,IAAI,GAAa,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAa,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IAE/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAChC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAA;QACnC,GAAG,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACjC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAA;QAClC,GAAG,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,yDAAyD,CAAC,CAAA;AAC/D,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC7B,MAAM,MAAM,GAAW,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IACnD,GAAG,CAAC,0BAA0B,MAAM,sBAAsB,CAAC,CAAA;AAC7D,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,6CAA6C,CAAC,CAAA;AACnD,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC1B,GAAG,CAAC,2CAA2C,CAAC,CAAA;AAClD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,uDAAuD,CAAC,CAAA;AAC7D,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAe,EAAE,EAAE;IAClF,IAAI,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAA;IAC5F,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,SAAS,EAAE;gBAAE,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;YAC9D,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA,iCAAiC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACnE,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,IAAI,MAAM,GAAG,SAAS,CAAA;IACtB,IAAI,IAAI,GAAG,SAAS,CAAA;IAEpB,IAAI,CAAC;QACH,IAAI,SAAS,EAAE;YAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACjD,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA,oBAAoB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACpD,IAAI,SAAS,EAAE;YAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;QACnD,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA,sBAAsB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACtD,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC/B,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,UAAU,gBAAgB,CAAA;IAEnD,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AACrD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,4DAA4D,CAAC,CAAA;AAClE,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAe,EAAE,EAAE;IACjE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;IAEhE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,EAAE,CAAC,CAAA;IAE5C,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CACP,IAAI,EACJ;;2DAEiD,CAAC,CAAC,GAAG,CAAC;SACxD,CACA,CAAA;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,OAAO,GAAG,CAAC,CAAA;gBAC1D,OAAM;YACR,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,IAAI,OAAO,GAAG,CAAC,CAAA;gBAC9D,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;oBAChB,MAAM,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,yBAAyB,GAAG,EAAE,CAAC,CAAA;AAC9D,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kEAAkE,CAAC,CAAA;AACxE,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAe,EAAE,EAAE;IACpE,MAAM,GAAG,CACP,IAAI,EACJ;;WAEO,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;SACnB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;;;wBAGF,MAAM,CAAC,YAAY;;;;gCAIX,MAAM,CAAC,YAAY;GAChD,CACA,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
+
import { Strategy } from "./enums.js";
|
|
1
2
|
import { Context } from "./context.js";
|
|
3
|
+
import { detectPackageManager } from "./utils.js";
|
|
2
4
|
import { remove, getPipeline } from "./pipeline.js";
|
|
3
5
|
import "./defaults.js";
|
|
4
6
|
const initialConfigValues = {
|
|
5
7
|
keepReleases: 5,
|
|
6
|
-
|
|
8
|
+
verbose: 1,
|
|
9
|
+
strategy: Strategy.Direct,
|
|
7
10
|
};
|
|
8
11
|
export function defineConfig(config) {
|
|
9
12
|
return async () => {
|
|
13
|
+
const pm = await detectPackageManager();
|
|
10
14
|
const release = new Date().toISOString().replace(/[:.]/g, '-');
|
|
15
|
+
const initial = { packageManager: pm, ...initialConfigValues };
|
|
11
16
|
Context.set({
|
|
12
|
-
config: { ...
|
|
17
|
+
config: { ...initial, ...config },
|
|
13
18
|
release,
|
|
14
19
|
hooks: config.hooks ?? {},
|
|
15
20
|
});
|
|
@@ -17,6 +22,11 @@ export function defineConfig(config) {
|
|
|
17
22
|
if (!hasHealthcheck && getPipeline().includes('deploy:healthcheck')) {
|
|
18
23
|
remove('deploy:healthcheck');
|
|
19
24
|
}
|
|
25
|
+
const strategy = config.strategy ?? Strategy.Build;
|
|
26
|
+
if (strategy !== Strategy.Build) {
|
|
27
|
+
remove('deploy:build:copy');
|
|
28
|
+
remove('deploy:build:shared');
|
|
29
|
+
}
|
|
20
30
|
};
|
|
21
31
|
}
|
|
22
32
|
//# sourceMappingURL=define_config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,eAAe,CAAA;AAEtB,MAAM,mBAAmB,GAAG;IAC1B,YAAY,EAAE,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,eAAe,CAAA;AAEtB,MAAM,mBAAmB,GAAG;IAC1B,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,CAAU;IACnB,QAAQ,EAAE,QAAQ,CAAC,MAAM;CAC1B,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,EAAE,GAAG,MAAM,oBAAoB,EAAE,CAAA;QACvC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,mBAAmB,EAAE,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC;YACV,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE;YACjC,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;QACnE,IAAI,CAAC,cAAc,IAAI,WAAW,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,oBAAoB,CAAC,CAAA;QAC9B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAA;QAClD,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,CAAC,mBAAmB,CAAC,CAAA;YAC3B,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|
package/build/src/deployer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/deployer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMpC,KAAK,UAAU,OAAO,CACpB,GAAkB,EAClB,IAAiB,EACjB,UAAuB,EAAE;IAEzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAM;IAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;IAC5B,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAkB,EAAE,IAAU;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAEpD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;IAE3C,MAAM,IAAI,GAAa,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAa,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IAE/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1F,MAAM,OAAO,GAAG,KAAK;SAClB,GAAG,CACF,CAAC,IAAI,EAAE,EAAE,CACP,aAAa,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAChG;SACA,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEjB,MAAM,GAAG,CACP,IAAI,EACJ;;eAEW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;eACb,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;eACjB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/deployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const Strategy: {
|
|
2
|
+
readonly Build: "build";
|
|
3
|
+
readonly Direct: "direct";
|
|
4
|
+
};
|
|
5
|
+
export type Strategy = (typeof Strategy)[keyof typeof Strategy];
|
|
6
|
+
export declare const PackageManager: {
|
|
7
|
+
readonly Npm: "npm";
|
|
8
|
+
readonly Pnpm: "pnpm";
|
|
9
|
+
readonly Yarn: "yarn";
|
|
10
|
+
readonly Bun: "bun";
|
|
11
|
+
};
|
|
12
|
+
export type PackageManager = (typeof PackageManager)[keyof typeof PackageManager];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAA;AAGV,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;CACF,CAAA"}
|
|
@@ -17,9 +17,9 @@ export function pmInstall() {
|
|
|
17
17
|
export function pmInstallProd() {
|
|
18
18
|
const manager = getManager();
|
|
19
19
|
if (manager === 'pnpm')
|
|
20
|
-
return `${pm()} install --prod`;
|
|
20
|
+
return `${pm()} install --frozen-lockfile --prod`;
|
|
21
21
|
if (manager === 'yarn')
|
|
22
|
-
return `${pm()} install --production`;
|
|
23
|
-
return `${pm()}
|
|
22
|
+
return `${pm()} install --frozen-lockfile --production`;
|
|
23
|
+
return `${pm()} ci --omit=dev`;
|
|
24
24
|
}
|
|
25
25
|
//# 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;AAEtC,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,IAAI,KAAK,CAAA;AACrD,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,
|
|
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;AAEtC,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,IAAI,KAAK,CAAA;AACrD,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/pipeline/store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,SAAS,GAAa;QACpB,aAAa;QACb,gBAAgB;QAChB,oBAAoB;QACpB,eAAe;QACf,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,eAAe;QACf,gBAAgB;KACjB,CAAA;IAED,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG,CAAC,KAAiB;QACnB,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,CAAC,QAAkB,EAAE,OAAiB;QAC1C,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,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,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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/pipeline/store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,SAAS,GAAa;QACpB,aAAa;QACb,gBAAgB;QAChB,oBAAoB;QACpB,qBAAqB;QACrB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,eAAe;QACf,gBAAgB;KACjB,CAAA;IAED,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG,CAAC,KAAiB;QACnB,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,CAAC,QAAkB,EAAE,OAAiB;QAC1C,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,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,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/store.d.ts
CHANGED
package/build/src/store.js
CHANGED
package/build/src/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAA;AAExC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,KAAc;IAC7C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,GAAG,CAAI,GAAW,EAAE,YAAgB;IAClD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAM,CAAA;AAC9D,CAAC"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAA;AAExC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,KAAc;IAC7C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,GAAG,CAAI,GAAW,EAAE,YAAgB;IAClD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAM,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { Host,
|
|
1
|
+
import type { Host, Config, Paths } from '../types.ts';
|
|
2
2
|
import { type CatapultLogger } from '../logger.ts';
|
|
3
3
|
export interface TaskContext {
|
|
4
|
-
host: Host;
|
|
5
|
-
paths: Paths;
|
|
6
|
-
|
|
7
|
-
logger: CatapultLogger;
|
|
4
|
+
readonly host: Host;
|
|
5
|
+
readonly paths: Paths;
|
|
6
|
+
readonly config: Config;
|
|
7
|
+
readonly logger: CatapultLogger;
|
|
8
|
+
readonly release: string;
|
|
8
9
|
}
|
|
9
10
|
export type TaskFn = (ctx: TaskContext) => void | Promise<void>;
|
|
10
11
|
export declare class TaskRunner {
|
package/build/src/task/runner.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Strategy } from "../enums.js";
|
|
1
2
|
import { ssh } from "../utils.js";
|
|
2
3
|
import { logger } from "../logger.js";
|
|
3
4
|
export class TaskRunner {
|
|
@@ -23,25 +24,28 @@ export class TaskRunner {
|
|
|
23
24
|
return this.#ctx?.host.bin?.[name] ?? name;
|
|
24
25
|
}
|
|
25
26
|
isVerbose() {
|
|
26
|
-
return this.#ctx?.
|
|
27
|
+
return this.#ctx?.config.verbose ?? 0;
|
|
27
28
|
}
|
|
28
29
|
resolve(str) {
|
|
29
30
|
if (!this.#ctx)
|
|
30
31
|
return str;
|
|
31
32
|
const p = this.#ctx.paths;
|
|
33
|
+
const strategy = this.#ctx.config.strategy ?? Strategy.Direct;
|
|
34
|
+
const buildPath = strategy === Strategy.Build ? p.builder : p.release;
|
|
32
35
|
return str
|
|
33
36
|
.replace(/\{\{release_path\}\}/g, p.release)
|
|
37
|
+
.replace(/\{\{builder_path\}\}/g, buildPath)
|
|
34
38
|
.replace(/\{\{current_path\}\}/g, p.current)
|
|
35
39
|
.replace(/\{\{shared_path\}\}/g, p.shared)
|
|
36
40
|
.replace(/\{\{releases_path\}\}/g, p.releases)
|
|
37
41
|
.replace(/\{\{base_path\}\}/g, p.base)
|
|
38
|
-
.replace(/\{\{release\}\}/g, this.#ctx.
|
|
42
|
+
.replace(/\{\{release\}\}/g, this.#ctx.release);
|
|
39
43
|
}
|
|
40
44
|
async flush() {
|
|
41
45
|
if (!this.#ctx || this.#commands.length === 0)
|
|
42
46
|
return;
|
|
43
47
|
const cmds = this.#commands.splice(0);
|
|
44
|
-
const verbose = this.#ctx.
|
|
48
|
+
const verbose = this.#ctx.config.verbose ?? 0;
|
|
45
49
|
if (verbose >= 1) {
|
|
46
50
|
for (const cmd of cmds)
|
|
47
51
|
logger.cmd(cmd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/task/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,MAAM,EAAuB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/task/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,10 @@ import { type TaskFn, TaskRunner } from './runner.ts';
|
|
|
3
3
|
export declare class TaskStore {
|
|
4
4
|
#private;
|
|
5
5
|
constructor(runner: TaskRunner);
|
|
6
|
+
describe(description: string): void;
|
|
6
7
|
register(name: TaskName, fn: TaskFn): void;
|
|
7
8
|
has(name: TaskName): boolean;
|
|
8
9
|
list(): string[];
|
|
10
|
+
getDescription(name: TaskName): string;
|
|
9
11
|
run(name: TaskName, deployCtx: DeployContext, host: Host): Promise<void>;
|
|
10
12
|
}
|
package/build/src/task/store.js
CHANGED
|
@@ -2,12 +2,21 @@ import { getPaths } from "../utils.js";
|
|
|
2
2
|
import { logger } from "../logger.js";
|
|
3
3
|
export class TaskStore {
|
|
4
4
|
#registry = new Map();
|
|
5
|
+
#descriptions = new Map();
|
|
6
|
+
#pendingDescription = null;
|
|
5
7
|
#runner;
|
|
6
8
|
constructor(runner) {
|
|
7
9
|
this.#runner = runner;
|
|
8
10
|
}
|
|
11
|
+
describe(description) {
|
|
12
|
+
this.#pendingDescription = description;
|
|
13
|
+
}
|
|
9
14
|
register(name, fn) {
|
|
10
15
|
this.#registry.set(name, fn);
|
|
16
|
+
if (this.#pendingDescription !== null) {
|
|
17
|
+
this.#descriptions.set(name, this.#pendingDescription);
|
|
18
|
+
this.#pendingDescription = null;
|
|
19
|
+
}
|
|
11
20
|
}
|
|
12
21
|
has(name) {
|
|
13
22
|
return this.#registry.has(name);
|
|
@@ -15,12 +24,15 @@ export class TaskStore {
|
|
|
15
24
|
list() {
|
|
16
25
|
return [...this.#registry.keys()];
|
|
17
26
|
}
|
|
27
|
+
getDescription(name) {
|
|
28
|
+
return this.#descriptions.get(name) ?? '';
|
|
29
|
+
}
|
|
18
30
|
async run(name, deployCtx, host) {
|
|
19
31
|
const fn = this.#registry.get(name);
|
|
20
32
|
if (!fn)
|
|
21
33
|
throw new Error(`Task not found: "${name}"`);
|
|
22
34
|
const paths = getPaths(host.deployPath, deployCtx.release);
|
|
23
|
-
const ctx = { host, paths, deployCtx, logger };
|
|
35
|
+
const ctx = { host, paths, config: deployCtx.config, release: deployCtx.release, logger };
|
|
24
36
|
this.#runner.set(ctx);
|
|
25
37
|
try {
|
|
26
38
|
const result = fn(ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/task/store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,OAAO,SAAS;IACpB,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,OAAO,CAAY;IAEnB,YAAY,MAAkB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,QAAQ,CAAC,IAAc,EAAE,EAAU;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/task/store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,OAAO,SAAS;IACpB,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAA;IACzC,mBAAmB,GAAkB,IAAI,CAAA;IACzC,OAAO,CAAY;IAEnB,YAAY,MAAkB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,QAAQ,CAAC,WAAmB;QAC1B,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAA;IACxC,CAAC;IAED,QAAQ,CAAC,IAAc,EAAE,EAAU;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC5B,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAA;YACtD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;QACjC,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAc;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,cAAc,CAAC,IAAc;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAc,EAAE,SAAwB,EAAE,IAAU;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,GAAG,CAAC,CAAA;QAErD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1D,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;QACzF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAErB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;YACtB,IAAI,MAAM,YAAY,OAAO;gBAAE,MAAM,MAAM,CAAA;YAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC;IACH,CAAC;CACF"}
|
package/build/src/task.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { Host, DeployContext, TaskName } from './types.ts';
|
|
2
2
|
import { type TaskFn } from './task/runner.ts';
|
|
3
3
|
export type { TaskContext } from './task/runner.ts';
|
|
4
|
+
export declare function desc(description: string): void;
|
|
4
5
|
export declare function task(name: TaskName, fn: TaskFn): void;
|
|
5
6
|
export declare function hasTask(name: TaskName): boolean;
|
|
6
7
|
export declare function getTasks(): string[];
|
|
8
|
+
export declare function getTaskDescription(name: TaskName): string;
|
|
7
9
|
export declare function runTask(name: TaskName, deployCtx: DeployContext, host: Host): Promise<void>;
|
|
8
10
|
export declare function cd(path: string): void;
|
|
9
11
|
export declare function run(command: string): void;
|
package/build/src/task.js
CHANGED
|
@@ -3,6 +3,9 @@ import { TaskStore } from "./task/store.js";
|
|
|
3
3
|
import { q } from "./utils.js";
|
|
4
4
|
const runner = new TaskRunner();
|
|
5
5
|
const store = new TaskStore(runner);
|
|
6
|
+
export function desc(description) {
|
|
7
|
+
store.describe(description);
|
|
8
|
+
}
|
|
6
9
|
export function task(name, fn) {
|
|
7
10
|
store.register(name, fn);
|
|
8
11
|
}
|
|
@@ -12,6 +15,9 @@ export function hasTask(name) {
|
|
|
12
15
|
export function getTasks() {
|
|
13
16
|
return store.list();
|
|
14
17
|
}
|
|
18
|
+
export function getTaskDescription(name) {
|
|
19
|
+
return store.getDescription(name);
|
|
20
|
+
}
|
|
15
21
|
export async function runTask(name, deployCtx, host) {
|
|
16
22
|
return store.run(name, deployCtx, host);
|
|
17
23
|
}
|
package/build/src/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAI9B,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;AAC/B,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAA;AAEnC,MAAM,UAAU,IAAI,CAAC,IAAc,EAAE,EAAU;IAC7C,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc,EAAE,SAAwB,EAAE,IAAU;IAChF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAMD,MAAM,UAAU,EAAE,CAAC,IAAY;IAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY;IAC9B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC,SAAS,EAAE,CAAA;AAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/task.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAI9B,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;AAC/B,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAA;AAEnC,MAAM,UAAU,IAAI,CAAC,WAAmB;IACtC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAc,EAAE,EAAU;IAC7C,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAc;IAC/C,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc,EAAE,SAAwB,EAAE,IAAU;IAChF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAMD,MAAM,UAAU,EAAE,CAAC,IAAY;IAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY;IAC9B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC,SAAS,EAAE,CAAA;AAC3B,CAAC"}
|
package/build/src/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Strategy, PackageManager } from './enums.ts';
|
|
1
2
|
export interface BranchWithPrompt {
|
|
2
3
|
name: string;
|
|
3
4
|
ask: boolean;
|
|
@@ -26,6 +27,9 @@ export interface Paths {
|
|
|
26
27
|
releases: string;
|
|
27
28
|
release: string;
|
|
28
29
|
shared: string;
|
|
30
|
+
cataConfig: string;
|
|
31
|
+
repo: string;
|
|
32
|
+
builder: string;
|
|
29
33
|
lock: string;
|
|
30
34
|
}
|
|
31
35
|
export interface TaskRegistry {
|
|
@@ -34,18 +38,21 @@ export type TaskName = keyof TaskRegistry | (string & {});
|
|
|
34
38
|
export type HookContext = {
|
|
35
39
|
host?: Host;
|
|
36
40
|
hosts?: Host[];
|
|
41
|
+
error?: Error;
|
|
37
42
|
};
|
|
38
43
|
export type HookFn = (context: HookContext) => Promise<void>;
|
|
39
44
|
export interface Hooks {
|
|
40
45
|
beforeDeploy?: HookFn;
|
|
41
46
|
afterDeploy?: HookFn;
|
|
47
|
+
afterFailure?: HookFn;
|
|
42
48
|
beforeHostDeploy?: HookFn;
|
|
43
49
|
afterHostDeploy?: HookFn;
|
|
44
50
|
}
|
|
45
51
|
export interface Config {
|
|
46
52
|
keepReleases?: number;
|
|
47
53
|
repository?: string;
|
|
48
|
-
|
|
54
|
+
strategy?: Strategy;
|
|
55
|
+
packageManager?: PackageManager;
|
|
49
56
|
hosts: Host[];
|
|
50
57
|
hooks?: Hooks;
|
|
51
58
|
verbose?: 0 | 1 | 2;
|
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 detectPackageManager(cwd?: string): Promise<PackageManager>;
|
|
3
4
|
export declare function findDeployFile(cwd?: string): Promise<string | null>;
|
|
4
5
|
export declare function q(value: unknown): string;
|
|
5
6
|
export declare function getPaths(baseDir: string, releaseName: string): Paths;
|
package/build/src/utils.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PackageManager } from "./enums.js";
|
|
1
2
|
import { $ } from 'execa';
|
|
2
3
|
import { tmpdir } from 'node:os';
|
|
3
4
|
import { join, resolve } from 'node:path';
|
|
@@ -6,11 +7,11 @@ import { access } from 'node:fs/promises';
|
|
|
6
7
|
import { logger } from "./logger.js";
|
|
7
8
|
const DEPLOY_CANDIDATES = ['deploy.ts', 'deploy.js'];
|
|
8
9
|
const PM_LOCK_FILES = [
|
|
9
|
-
['bun.lock',
|
|
10
|
-
['bun.lockb',
|
|
11
|
-
['pnpm-lock.yaml',
|
|
12
|
-
['yarn.lock',
|
|
13
|
-
['package-lock.json',
|
|
10
|
+
['bun.lock', PackageManager.Bun],
|
|
11
|
+
['bun.lockb', PackageManager.Bun],
|
|
12
|
+
['pnpm-lock.yaml', PackageManager.Pnpm],
|
|
13
|
+
['yarn.lock', PackageManager.Yarn],
|
|
14
|
+
['package-lock.json', PackageManager.Npm],
|
|
14
15
|
];
|
|
15
16
|
export async function detectPackageManager(cwd = process.cwd()) {
|
|
16
17
|
for (const [lockFile, manager] of PM_LOCK_FILES) {
|
|
@@ -20,7 +21,7 @@ export async function detectPackageManager(cwd = process.cwd()) {
|
|
|
20
21
|
}
|
|
21
22
|
catch { }
|
|
22
23
|
}
|
|
23
|
-
return
|
|
24
|
+
return PackageManager.Npm;
|
|
24
25
|
}
|
|
25
26
|
export async function findDeployFile(cwd = process.cwd()) {
|
|
26
27
|
for (const candidate of DEPLOY_CANDIDATES) {
|
|
@@ -43,7 +44,10 @@ export function getPaths(baseDir, releaseName) {
|
|
|
43
44
|
releases: `${baseDir}/releases`,
|
|
44
45
|
release: `${baseDir}/releases/${releaseName}`,
|
|
45
46
|
shared: `${baseDir}/shared`,
|
|
46
|
-
|
|
47
|
+
cataConfig: `${baseDir}/.catapult`,
|
|
48
|
+
repo: `${baseDir}/.catapult/repo`,
|
|
49
|
+
builder: `${baseDir}/.catapult/builder`,
|
|
50
|
+
lock: `${baseDir}/.catapult/deploy.lock`,
|
|
47
51
|
};
|
|
48
52
|
}
|
|
49
53
|
export function resolveSshArgs(host) {
|