@catapultjs/deploy 0.9.0 → 0.11.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.
Files changed (58) hide show
  1. package/README.md +9 -1
  2. package/build/commands/list_revisions.js +12 -25
  3. package/build/commands/list_revisions.js.map +1 -1
  4. package/build/commands/status.d.ts +1 -0
  5. package/build/commands/status.js +36 -78
  6. package/build/commands/status.js.map +1 -1
  7. package/build/commands/version.js +3 -3
  8. package/build/commands/version.js.map +1 -1
  9. package/build/index.d.ts +3 -0
  10. package/build/index.js +3 -0
  11. package/build/index.js.map +1 -1
  12. package/build/recipes/astro.js +9 -13
  13. package/build/recipes/astro.js.map +1 -1
  14. package/build/recipes/astro_static.d.ts +1 -0
  15. package/build/recipes/astro_static.js +11 -0
  16. package/build/recipes/astro_static.js.map +1 -0
  17. package/build/recipes/deploy/update_code.js +5 -4
  18. package/build/recipes/deploy/update_code.js.map +1 -1
  19. package/build/recipes/nestjs.d.ts +1 -0
  20. package/build/recipes/nestjs.js +5 -0
  21. package/build/recipes/nestjs.js.map +1 -0
  22. package/build/recipes/nextjs.d.ts +1 -0
  23. package/build/recipes/nextjs.js +20 -0
  24. package/build/recipes/nextjs.js.map +1 -0
  25. package/build/recipes/nextjs_static.d.ts +1 -0
  26. package/build/recipes/nextjs_static.js +8 -0
  27. package/build/recipes/nextjs_static.js.map +1 -0
  28. package/build/recipes/nuxt_static.d.ts +1 -0
  29. package/build/recipes/nuxt_static.js +8 -0
  30. package/build/recipes/nuxt_static.js.map +1 -0
  31. package/build/recipes/pm2.js +15 -14
  32. package/build/recipes/pm2.js.map +1 -1
  33. package/build/recipes/tanstack.d.ts +1 -0
  34. package/build/recipes/tanstack.js +5 -0
  35. package/build/recipes/tanstack.js.map +1 -0
  36. package/build/src/api.d.ts +60 -0
  37. package/build/src/api.js +159 -0
  38. package/build/src/api.js.map +1 -0
  39. package/build/src/deployer.d.ts +7 -1
  40. package/build/src/deployer.js +19 -1
  41. package/build/src/deployer.js.map +1 -1
  42. package/build/src/status.d.ts +18 -0
  43. package/build/src/status.js +59 -0
  44. package/build/src/status.js.map +1 -0
  45. package/build/src/task/store.d.ts +4 -1
  46. package/build/src/task/store.js +8 -2
  47. package/build/src/task/store.js.map +1 -1
  48. package/build/src/task.d.ts +4 -1
  49. package/build/src/task.js +2 -2
  50. package/build/src/task.js.map +1 -1
  51. package/package.json +16 -7
  52. package/skills/catapultjs/SKILL.md +41 -0
  53. package/skills/catapultjs/references/api.md +70 -0
  54. package/skills/catapultjs/references/cli.md +160 -0
  55. package/skills/catapultjs/references/config.md +194 -0
  56. package/skills/catapultjs/references/github-actions.md +99 -0
  57. package/skills/catapultjs/references/recipe.md +115 -0
  58. package/skills/catapultjs/references/recipes.md +596 -0
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![node version](https://img.shields.io/node/v/@catapultjs/deploy)](https://nodejs.org)
5
5
  [![license](https://img.shields.io/npm/l/@catapultjs/deploy)](https://github.com/catapultjs/deploy/blob/main/LICENSE)
6
6
 
7
- A Capistrano-style deployment tool for Node.js — versioned releases, shared directories, composable task pipeline, automatic rollback. No agent, no server-side dependency, just SSH.
7
+ A Capistrano-style deployment tool for Node.js — versioned releases, shared directories, composable task pipeline, automatic rollback. No agent, no container, no server-side dependency, just SSH.
8
8
 
9
9
  Full documentation at **https://catapultjs.com/**
10
10
 
@@ -87,6 +87,14 @@ npx cata deploy
87
87
  - Node.js >= 24 on the machine running Catapult
88
88
  - SSH key-based access to the target servers
89
89
 
90
+ ## Agent skill
91
+
92
+ The package ships a [`catapultjs` agent skill](https://catapultjs.com/guide/agent-skills) for Claude Code and SKILL.md-compatible agents, with references covering the deploy config, recipe writing and the programmatic API.
93
+
94
+ ```bash
95
+ npx skills add catapultjs/deploy
96
+ ```
97
+
90
98
  ## Contributing a recipe
91
99
 
92
100
  If you've written a recipe that could be useful to others, open a pull request and add it to the [`contrib/`](https://github.com/catapultjs/deploy/tree/main/contrib) directory.
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { flags } from '@adonisjs/ace';
11
11
  import { Context } from "../src/context.js";
12
- import { q, getPaths, ssh } from "../src/utils.js";
12
+ import { getRevisions } from "../src/deployer.js";
13
13
  import { BaseDeployCommand } from "../src/base_command.js";
14
14
  export default class ListRevisions extends BaseDeployCommand {
15
15
  static commandName = 'list:revisions';
@@ -23,41 +23,28 @@ export default class ListRevisions extends BaseDeployCommand {
23
23
  for (const host of hosts) {
24
24
  if (!(await this.ensureHostSetup(ctx, host)))
25
25
  continue;
26
- const paths = getPaths(host.deployPath, ctx.release);
27
- const logFile = `${paths.cataConfig}/revisions.log`;
28
26
  if (!this.json)
29
27
  this.logger.log(this.colors.bold(`\n# ${host.name}`));
30
- const { stdout } = await ssh(host, `set +e\n[ -f ${q(logFile)} ] && tail -10 ${q(logFile)} || true`);
31
- const lines = stdout.trim().split('\n').filter(Boolean).reverse();
28
+ const revisions = await getRevisions(ctx, host);
32
29
  if (this.json) {
33
- const revisions = [];
34
- for (const line of lines) {
35
- try {
36
- revisions.push(JSON.parse(line));
37
- }
38
- catch { }
39
- }
40
30
  report.push({ name: host.name, revisions });
41
31
  continue;
42
32
  }
43
33
  const table = this.ui.table();
44
34
  table.head(['Release', 'Branch', 'Commit', 'By', 'Date']);
45
- if (lines.length === 0) {
35
+ if (revisions.length === 0) {
46
36
  table.row(['no revisions', '', '', '', '']);
47
37
  }
48
38
  else {
49
- for (const line of lines) {
50
- try {
51
- const { release, branch, commit, user, date } = JSON.parse(line);
52
- table.row([
53
- release ?? '—',
54
- branch ?? '—',
55
- commit ? commit.slice(0, 7) : '—',
56
- user ?? '—',
57
- date ? new Date(date).toLocaleString() : '—',
58
- ]);
59
- }
60
- catch { }
39
+ for (const revision of revisions) {
40
+ const { release, branch, commit, user, date } = revision;
41
+ table.row([
42
+ release ?? '—',
43
+ branch ?? '—',
44
+ commit ? commit.slice(0, 7) : '—',
45
+ user ?? '—',
46
+ date ? new Date(date).toLocaleString() : '—',
47
+ ]);
61
48
  }
62
49
  }
63
50
  table.render();
@@ -1 +1 @@
1
- {"version":3,"file":"list_revisions.js","sourceRoot":"","sources":["../../commands/list_revisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list_revisions.js","sourceRoot":"","sources":["../../commands/list_revisions.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,iBAAiB;IAC1D,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAA;IACrC,MAAM,CAAC,WAAW,GAAG,uCAAuC,CAAA;IAK5D,KAAK,CAAC,GAAG;QACP,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QAEzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,MAAM,MAAM,GAA6D,EAAE,CAAA;QAE3E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAAE,SAAQ;YAEtD,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAErE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAE/C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;gBAC3C,SAAQ;YACV,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;YAC7B,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;YAEzD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;YAC7C,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAG/C,CAAA;oBACD,KAAK,CAAC,GAAG,CAAC;wBACR,OAAO,IAAI,GAAG;wBACd,MAAM,IAAI,GAAG;wBACb,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;wBACjC,IAAI,IAAI,GAAG;wBACX,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG;qBAC7C,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,KAAK,CAAC,MAAM,EAAE,CAAA;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;;AAjDO;IADP,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;2CACnC"}
@@ -4,4 +4,5 @@ export default class Status extends BaseDeployCommand {
4
4
  static description: string;
5
5
  json: boolean;
6
6
  run(): Promise<void>;
7
+ private printStatus;
7
8
  }
@@ -8,13 +8,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { flags } from '@adonisjs/ace';
11
- import { Context } from "../src/context.js";
12
- import { getCurrentRelease } from "../src/deployer.js";
13
- import { bin } from "../src/task.js";
14
- import { getPipeline } from "../src/pipeline.js";
15
- import { hooks } from "../src/pipeline/hooks.js";
16
- import { q, getPaths, ssh, detectPackageManager } from "../src/utils.js";
17
11
  import { MemoryRenderer } from '@poppinss/cliui';
12
+ import { Context } from "../src/context.js";
13
+ import { collectHostStatus, HOST_STATUS_FIELDS } from "../src/status.js";
18
14
  import { BaseDeployCommand } from "../src/base_command.js";
19
15
  import { CatapultLogger, logger } from "../src/logger.js";
20
16
  export default class Status extends BaseDeployCommand {
@@ -25,91 +21,53 @@ export default class Status extends BaseDeployCommand {
25
21
  const hosts = await this.selectHosts({ all: this.json });
26
22
  if (!hosts)
27
23
  return;
28
- const pm = await detectPackageManager();
29
- const report = [];
30
24
  const hookLogger = this.json ? new CatapultLogger() : logger;
31
25
  if (this.json)
32
26
  hookLogger.useRenderer(new MemoryRenderer());
27
+ const report = [];
33
28
  for (const host of hosts) {
34
29
  if (!(await this.ensureHostSetup(ctx, host)))
35
30
  continue;
36
- const paths = getPaths(host.deployPath, ctx.release);
37
- const status = { name: host.name };
38
- report.push(status);
39
31
  if (!this.json)
40
32
  this.logger.log(this.colors.bold(`\n# ${host.name}`));
41
- try {
42
- const current = await getCurrentRelease(ctx, host);
43
- status.release = current ?? null;
44
- if (!this.json) {
45
- this.logger.log(`Release ${current ? this.colors.cyan(current) : this.colors.dim('none')}`);
46
- }
47
- if (getPipeline().includes('deploy:healthcheck')) {
48
- try {
49
- await ssh(host, `set -e\n${bin('curl')} --fail --silent --show-error --max-time 5 ${q(host.healthcheck?.url)} >/dev/null`);
50
- status.health = 'ok';
51
- if (!this.json)
52
- this.logger.log(`Health ${this.colors.green('OK')}`);
53
- }
54
- catch {
55
- status.health = 'fail';
56
- if (!this.json)
57
- this.logger.log(`Health ${this.colors.red('FAIL')}`);
58
- }
59
- }
60
- const { stdout: versionsStdout } = await ssh(host, `set +e\ncd ${q(paths.current)}\necho "NODE:$(${bin('node')} --version 2>/dev/null || true)"\necho "PM:$(${bin(pm)} --version 2>/dev/null || true)"`);
61
- const lines = versionsStdout.trim().split('\n');
62
- const nodeVersion = lines.find((l) => l.startsWith('NODE:'))?.slice(5) || '';
63
- const pmVersion = lines.find((l) => l.startsWith('PM:'))?.slice(3) || '';
64
- status.node = nodeVersion || null;
65
- status.packageManager = { name: pm, version: pmVersion || null };
66
- if (!this.json) {
67
- this.logger.log(`Node ${this.colors.dim(nodeVersion || 'unavailable')}`);
68
- this.logger.log(`${pm.padEnd(8)} ${this.colors.dim(pmVersion || 'unavailable')}`);
69
- }
70
- for (const hook of hooks.getStatus()) {
71
- const data = await hook(ctx, host, hookLogger);
72
- if (!data)
73
- continue;
74
- Object.assign(status, data);
75
- if (!this.json) {
76
- for (const [key, value] of Object.entries(data)) {
77
- this.logger.log(`${key.padEnd(8)} ${this.colors.dim(String(value))}`);
78
- }
79
- }
80
- }
81
- const { stdout: revStdout } = await ssh(host, `set +e\n[ -f ${q(paths.cataConfig + '/revisions.log')} ] && tail -1 ${q(paths.cataConfig + '/revisions.log')} || true`);
82
- const rev = revStdout.trim();
83
- if (rev) {
84
- try {
85
- const revision = JSON.parse(rev);
86
- const { branch, commit, user, date } = revision;
87
- status.revision = revision;
88
- if (!this.json) {
89
- this.logger.log(`Branch ${this.colors.dim(branch ?? '—')}`);
90
- this.logger.log(`Commit ${this.colors.dim(commit ? commit.slice(0, 7) : '—')}`);
91
- this.logger.log(`By ${this.colors.dim(user ?? '—')}`);
92
- this.logger.log(`Date ${this.colors.dim(date ? new Date(date).toLocaleString() : '—')}`);
93
- }
94
- }
95
- catch { }
96
- }
97
- const { stdout: lockStdout } = await ssh(host, `set +e\n[ -f ${q(paths.lock)} ] && cat ${q(paths.lock)} || true`);
98
- const lock = lockStdout.trim();
99
- status.lock = lock || null;
100
- if (!this.json) {
101
- this.logger.log(`Lock ${lock ? this.colors.yellow(lock) : this.colors.dim('none')}`);
102
- }
103
- }
104
- catch (error) {
105
- status.error = error.message;
106
- this.logger.error(`status error: ${error.message}`);
107
- }
33
+ const status = await collectHostStatus(ctx, host, hookLogger);
34
+ report.push(status);
35
+ if (status.error)
36
+ this.logger.error(`status error: ${status.error}`);
37
+ if (!this.json)
38
+ this.printStatus(status);
108
39
  }
109
40
  if (this.json) {
110
41
  this.logger.log(JSON.stringify({ hosts: report }, null, 2));
111
42
  }
112
43
  }
44
+ printStatus(status) {
45
+ if (status.release !== undefined) {
46
+ this.logger.log(`Release ${status.release ? this.colors.cyan(status.release) : this.colors.dim('none')}`);
47
+ }
48
+ if (status.health) {
49
+ this.logger.log(`Health ${status.health === 'ok' ? this.colors.green('OK') : this.colors.red('FAIL')}`);
50
+ }
51
+ if (status.packageManager) {
52
+ this.logger.log(`Node ${this.colors.dim(status.node || 'unavailable')}`);
53
+ this.logger.log(`${status.packageManager.name.padEnd(8)} ${this.colors.dim(status.packageManager.version || 'unavailable')}`);
54
+ }
55
+ for (const [key, value] of Object.entries(status)) {
56
+ if (HOST_STATUS_FIELDS.has(key))
57
+ continue;
58
+ this.logger.log(`${key.padEnd(8)} ${this.colors.dim(String(value))}`);
59
+ }
60
+ if (status.revision) {
61
+ const { branch, commit, user, date } = status.revision;
62
+ this.logger.log(`Branch ${this.colors.dim(branch ?? '—')}`);
63
+ this.logger.log(`Commit ${this.colors.dim(commit ? commit.slice(0, 7) : '—')}`);
64
+ this.logger.log(`By ${this.colors.dim(user ?? '—')}`);
65
+ this.logger.log(`Date ${this.colors.dim(date ? new Date(date).toLocaleString() : '—')}`);
66
+ }
67
+ if (status.lock !== undefined) {
68
+ this.logger.log(`Lock ${status.lock ? this.colors.yellow(status.lock) : this.colors.dim('none')}`);
69
+ }
70
+ }
113
71
  }
114
72
  __decorate([
115
73
  flags.boolean({ description: 'Output result as JSON' }),
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../commands/status.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { BaseCommand, flags } from '@adonisjs/ace';
11
- import { readFile } from 'fs/promises';
12
- import { resolve, dirname } from 'path';
13
- import { fileURLToPath } from 'url';
11
+ import { readFile } from 'node:fs/promises';
12
+ import { resolve, dirname } from 'node:path';
13
+ import { fileURLToPath } from 'node:url';
14
14
  export default class Version extends BaseCommand {
15
15
  static commandName = 'version';
16
16
  static description = 'Show the current version';
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../commands/version.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,WAAW,GAAG,SAAS,CAAA;IAC9B,MAAM,CAAC,WAAW,GAAG,0BAA0B,CAAA;IAK/C,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAA;QACtF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAExD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAClE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;;AAZO;IADP,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;qCACnC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../commands/version.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,WAAW,GAAG,SAAS,CAAA;IAC9B,MAAM,CAAC,WAAW,GAAG,0BAA0B,CAAA;IAK/C,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAA;QACtF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAExD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAClE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;;AAZO;IADP,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;qCACnC"}
package/build/index.d.ts CHANGED
@@ -5,3 +5,6 @@ export * from './src/task.ts';
5
5
  export * from './src/pipeline.ts';
6
6
  export * from './src/package_manager.ts';
7
7
  export * from './src/define_config.ts';
8
+ export * from './src/deployer.ts';
9
+ export * from './src/status.ts';
10
+ export { Catapult } from './src/api.ts';
package/build/index.js CHANGED
@@ -5,4 +5,7 @@ export * from "./src/task.js";
5
5
  export * from "./src/pipeline.js";
6
6
  export * from "./src/package_manager.js";
7
7
  export * from "./src/define_config.js";
8
+ export * from "./src/deployer.js";
9
+ export * from "./src/status.js";
10
+ export { Catapult } from "./src/api.js";
8
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA"}
@@ -1,15 +1,11 @@
1
- import { task, desc, local, upload, get, set, before } from "../index.js";
2
- import { resolveHostStringValue } from "../src/utils.js";
3
- set('astro_mode', 'production');
4
- desc('Builds the Astro application locally');
5
- task('deploy:build', async ({ host }) => {
6
- const mode = resolveHostStringValue(get('astro_mode'), host, 'astro_mode');
7
- await local(`astro build --mode ${mode}`);
1
+ import { task, desc, cd, run, get, set, after, pmExec } from "../index.js";
2
+ set('astro_path', get('source_path', ''));
3
+ desc('Builds the Astro application on the remote server');
4
+ task('deploy:build', () => {
5
+ const astroPath = get('astro_path');
6
+ cd(`{{release_path}}/${astroPath}`);
7
+ run(`${pmExec('astro')} build`);
8
8
  });
9
- desc('Uploads local artifacts to the release directory');
10
- task('deploy:update_code', async ({ paths }) => {
11
- const source = get('source_path', './dist/.');
12
- await upload(source, paths.release);
13
- });
14
- before('deploy:lock', 'deploy:build');
9
+ after('deploy:update_code', 'deploy:install');
10
+ after('deploy:shared', 'deploy:build');
15
11
  //# sourceMappingURL=astro.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"astro.js","sourceRoot":"","sources":["../../recipes/astro.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAExD,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;AAE/B,IAAI,CAAC,sCAAsC,CAAC,CAAA;AAC5C,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,IAAI,EAAe,EAAE,EAAE;IACnD,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;IAC1E,MAAM,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kDAAkD,CAAC,CAAA;AACxD,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAe,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;IAC7C,MAAM,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"astro.js","sourceRoot":"","sources":["../../recipes/astro.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAE1E,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAA;AAEzC,IAAI,CAAC,mDAAmD,CAAC,CAAA;AACzD,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;IACxB,MAAM,SAAS,GAAG,GAAG,CAAS,YAAY,CAAC,CAAA;IAC3C,EAAE,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAA;IACnC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACjC,CAAC,CAAC,CAAA;AAEF,KAAK,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA;AAC7C,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import { task, desc, local, get, set, before } from "../index.js";
2
+ import { resolveHostStringValue } from "../src/utils.js";
3
+ set('astro_mode', 'production');
4
+ set('source_path', './dist/.');
5
+ desc('Builds the Astro application locally');
6
+ task('deploy:build', async ({ host }) => {
7
+ const mode = resolveHostStringValue(get('astro_mode'), host, 'astro_mode');
8
+ await local(`astro build --mode ${mode}`);
9
+ });
10
+ before('deploy:lock', 'deploy:build');
11
+ //# sourceMappingURL=astro_static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astro_static.js","sourceRoot":"","sources":["../../recipes/astro_static.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAExD,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;AAC/B,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;AAE9B,IAAI,CAAC,sCAAsC,CAAC,CAAA;AAC5C,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,IAAI,EAAe,EAAE,EAAE;IACnD,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;IAC1E,MAAM,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA"}
@@ -1,6 +1,7 @@
1
- import { task, desc } from "../../index.js";
2
- desc('Method for updating code');
3
- task('deploy:update_code', () => {
4
- throw new Error('Please implement this task');
1
+ import { task, desc, get, upload } from "../../index.js";
2
+ desc('Uploads local artifacts to the release directory');
3
+ task('deploy:update_code', async ({ paths }) => {
4
+ const source = get('source_path', './.');
5
+ await upload(source, paths.release);
5
6
  });
6
7
  //# sourceMappingURL=update_code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update_code.js","sourceRoot":"","sources":["../../../recipes/deploy/update_code.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAQ3C,IAAI,CAAC,0BAA0B,CAAC,CAAA;AAChC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAC/C,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"update_code.js","sourceRoot":"","sources":["../../../recipes/deploy/update_code.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAQ1E,IAAI,CAAC,kDAAkD,CAAC,CAAA;AACxD,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAe,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IACxC,MAAM,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import { set, after } from "../index.js";
2
+ set('shared_files', ['.env']);
3
+ after('deploy:update_code', 'deploy:install');
4
+ after('deploy:install', 'deploy:build');
5
+ //# sourceMappingURL=nestjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestjs.js","sourceRoot":"","sources":["../../recipes/nestjs.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,GAAG,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AAE7B,KAAK,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA;AAC7C,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ import { task, desc, run, get, set, cd, after, pmExec } from "../index.js";
2
+ set('shared_files', ['.env']);
3
+ set('nextjs_path', get('source_path', ''));
4
+ set('nextjs_out_path', '.next/standalone/');
5
+ desc('Builds the Next.js app');
6
+ task('deploy:build', () => {
7
+ const nextjsPath = get('nextjs_path');
8
+ cd(`{{release_path}}/${nextjsPath}`);
9
+ run(`${pmExec('next')} build`);
10
+ const nextjsOutPath = get('nextjs_out_path');
11
+ run(`
12
+ if [ -d {{release_path}}/${nextjsOutPath} ]; then
13
+ ln -sfn {{release_path}}/public {{release_path}}/${nextjsOutPath}
14
+ ln -sfn {{release_path}}/.next/static {{release_path}}/${nextjsOutPath}.next/
15
+ fi
16
+ `);
17
+ });
18
+ after('deploy:update_code', 'deploy:install');
19
+ after('deploy:shared', 'deploy:build');
20
+ //# sourceMappingURL=nextjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs.js","sourceRoot":"","sources":["../../recipes/nextjs.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAE1E,GAAG,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AAC7B,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1C,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAA;AAE3C,IAAI,CAAC,wBAAwB,CAAC,CAAA;AAC9B,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;IACxB,MAAM,UAAU,GAAG,GAAG,CAAS,aAAa,CAAC,CAAA;IAC7C,EAAE,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAA;IACpC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAE9B,MAAM,aAAa,GAAG,GAAG,CAAS,iBAAiB,CAAC,CAAA;IACpD,GAAG,CAAC;+BACyB,aAAa;yDACa,aAAa;+DACP,aAAa;;GAEzE,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,KAAK,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA;AAC7C,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { task, desc, set, before, local } from "../index.js";
2
+ set('source_path', './out/.');
3
+ desc('Builds the Next.js application locally');
4
+ task('deploy:build', async () => {
5
+ await local('next build');
6
+ });
7
+ before('deploy:lock', 'deploy:build');
8
+ //# sourceMappingURL=nextjs_static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs_static.js","sourceRoot":"","sources":["../../recipes/nextjs_static.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE5D,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;AAE7B,IAAI,CAAC,wCAAwC,CAAC,CAAA;AAC9C,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,KAAK,CAAC,YAAY,CAAC,CAAA;AAC3B,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { task, desc, set, before, local } from "../index.js";
2
+ set('source_path', './.output/public/.');
3
+ desc('Builds the Nuxt application locally');
4
+ task('deploy:build', async () => {
5
+ await local(`nuxt generate`);
6
+ });
7
+ before('deploy:lock', 'deploy:build');
8
+ //# sourceMappingURL=nuxt_static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nuxt_static.js","sourceRoot":"","sources":["../../recipes/nuxt_static.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE5D,GAAG,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAA;AAExC,IAAI,CAAC,qCAAqC,CAAC,CAAA;AAC3C,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;AAC9B,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA"}
@@ -1,4 +1,3 @@
1
- import { createRequire } from 'node:module';
2
1
  import { task, desc, cd, run, after, onStatus, bin } from "../index.js";
3
2
  import { ssh, q } from "../src/utils.js";
4
3
  onStatus(async (_ctx, host) => {
@@ -42,10 +41,12 @@ task('pm2:delete', async () => {
42
41
  });
43
42
  desc('Displays the last 50 lines of logs for all apps');
44
43
  task('pm2:logs', async ({ host, paths, logger }) => {
45
- const require = createRequire(import.meta.url);
46
- const ecosystem = require(process.cwd() + '/ecosystem.config.cjs');
47
- const names = (ecosystem?.apps ?? []).map((a) => a.name).join(' ');
48
- const { stdout } = await ssh(host, `set -e\ncd ${q(paths.current)}\n${bin('pm2')} logs ${names} --nostream --lines 50`, { color: true });
44
+ const { stdout } = await ssh(host, `
45
+ set -e
46
+ cd ${q(paths.current)}
47
+ names=$(${bin('node')} -e "const e=require('./ecosystem.config.cjs'); console.log((e.apps||[]).map((a)=>a.name).join(' '))")
48
+ ${bin('pm2')} logs $names --nostream --lines 50
49
+ `, { color: true });
49
50
  logger.log(stdout.trim());
50
51
  });
51
52
  desc('Lists all PM2 processes');
@@ -57,15 +58,15 @@ task('pm2:list', async ({ host, paths, logger }) => {
57
58
  });
58
59
  desc('Shows detailed info for each app in ecosystem.config.cjs');
59
60
  task('pm2:show', async ({ host, paths, logger }) => {
60
- const require = createRequire(import.meta.url);
61
- const ecosystem = require(process.cwd() + '/ecosystem.config.cjs');
62
- const names = (ecosystem?.apps ?? []).map((a) => a.name);
63
- for (const name of names) {
64
- const { stdout } = await ssh(host, `set -e\ncd ${q(paths.current)}\n${bin('pm2')} show ${q(name)}`, {
65
- color: true,
66
- });
67
- logger.log(stdout.trim());
68
- }
61
+ const { stdout } = await ssh(host, `
62
+ set -e
63
+ cd ${q(paths.current)}
64
+ names=$(${bin('node')} -e "const e=require('./ecosystem.config.cjs'); console.log((e.apps||[]).map((a)=>a.name).join(' '))")
65
+ for name in $names; do
66
+ ${bin('pm2')} show "$name"
67
+ done
68
+ `, { color: true });
69
+ logger.log(stdout.trim());
69
70
  });
70
71
  after('deploy:publish', 'pm2:startOrReload');
71
72
  after('pm2:startOrReload', 'pm2:save');
@@ -1 +1 @@
1
- {"version":3,"file":"pm2.js","sourceRoot":"","sources":["../../recipes/pm2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pm2.js","sourceRoot":"","sources":["../../recipes/pm2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import { set, after } from "../index.js";
2
+ set('shared_files', ['.env']);
3
+ after('deploy:update_code', 'deploy:install');
4
+ after('deploy:install', 'deploy:build');
5
+ //# sourceMappingURL=tanstack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tanstack.js","sourceRoot":"","sources":["../../recipes/tanstack.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,GAAG,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AAE7B,KAAK,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA;AAC7C,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA"}