@catapultjs/deploy 0.4.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.
Files changed (84) hide show
  1. package/build/bin/run.js +31 -1
  2. package/build/bin/run.js.map +1 -1
  3. package/build/commands/deploy.js +1 -1
  4. package/build/commands/deploy.js.map +1 -1
  5. package/build/commands/rollback.d.ts +1 -0
  6. package/build/commands/rollback.js +34 -2
  7. package/build/commands/rollback.js.map +1 -1
  8. package/build/recipes/adonisjs.d.ts +4 -3
  9. package/build/recipes/adonisjs.js +22 -32
  10. package/build/recipes/adonisjs.js.map +1 -1
  11. package/build/recipes/astro.js +15 -0
  12. package/build/recipes/astro.js.map +1 -0
  13. package/build/recipes/directus.d.ts +8 -0
  14. package/build/recipes/directus.js +30 -0
  15. package/build/recipes/directus.js.map +1 -0
  16. package/build/recipes/git.js +3 -3
  17. package/build/recipes/git.js.map +1 -1
  18. package/build/recipes/nuxt.d.ts +6 -0
  19. package/build/recipes/nuxt.js +18 -0
  20. package/build/recipes/nuxt.js.map +1 -0
  21. package/build/recipes/redis.d.ts +7 -0
  22. package/build/recipes/redis.js +14 -0
  23. package/build/recipes/redis.js.map +1 -0
  24. package/build/recipes/rsync.js +6 -5
  25. package/build/recipes/rsync.js.map +1 -1
  26. package/build/recipes/vitepress.js +14 -0
  27. package/build/recipes/vitepress.js.map +1 -0
  28. package/build/src/actions.d.ts +1 -0
  29. package/build/src/actions.js +17 -0
  30. package/build/src/actions.js.map +1 -0
  31. package/build/src/base_command.js +1 -1
  32. package/build/src/base_command.js.map +1 -1
  33. package/build/src/defaults.d.ts +3 -1
  34. package/build/src/defaults.js +37 -38
  35. package/build/src/defaults.js.map +1 -1
  36. package/build/src/define_config.js +5 -13
  37. package/build/src/define_config.js.map +1 -1
  38. package/build/src/deployer.d.ts +2 -1
  39. package/build/src/deployer.js +9 -6
  40. package/build/src/deployer.js.map +1 -1
  41. package/build/src/enums.d.ts +0 -5
  42. package/build/src/enums.js +0 -4
  43. package/build/src/enums.js.map +1 -1
  44. package/build/src/package_manager.d.ts +1 -0
  45. package/build/src/package_manager.js +10 -1
  46. package/build/src/package_manager.js.map +1 -1
  47. package/build/src/pipeline/store.d.ts +1 -0
  48. package/build/src/pipeline/store.js +18 -14
  49. package/build/src/pipeline/store.js.map +1 -1
  50. package/build/src/pipeline.d.ts +3 -1
  51. package/build/src/pipeline.js +4 -0
  52. package/build/src/pipeline.js.map +1 -1
  53. package/build/src/task/runner.d.ts +3 -0
  54. package/build/src/task/runner.js +27 -6
  55. package/build/src/task/runner.js.map +1 -1
  56. package/build/src/task.d.ts +3 -0
  57. package/build/src/task.js +3 -0
  58. package/build/src/task.js.map +1 -1
  59. package/build/src/types.d.ts +1 -3
  60. package/build/src/utils.d.ts +2 -0
  61. package/build/src/utils.js +20 -1
  62. package/build/src/utils.js.map +1 -1
  63. package/package.json +8 -2
  64. package/build/bin/test.js +0 -9
  65. package/build/bin/test.js.map +0 -1
  66. package/build/recipes/bun.d.ts +0 -8
  67. package/build/recipes/bun.js +0 -22
  68. package/build/recipes/bun.js.map +0 -1
  69. package/build/recipes/nodejs.d.ts +0 -9
  70. package/build/recipes/nodejs.js +0 -43
  71. package/build/recipes/nodejs.js.map +0 -1
  72. package/build/tests/package_manager.spec.js +0 -51
  73. package/build/tests/package_manager.spec.js.map +0 -1
  74. package/build/tests/pipeline.spec.d.ts +0 -1
  75. package/build/tests/pipeline.spec.js +0 -80
  76. package/build/tests/pipeline.spec.js.map +0 -1
  77. package/build/tests/store.spec.d.ts +0 -1
  78. package/build/tests/store.spec.js +0 -51
  79. package/build/tests/store.spec.js.map +0 -1
  80. package/build/tests/task.spec.d.ts +0 -1
  81. package/build/tests/task.spec.js +0 -108
  82. package/build/tests/task.spec.js.map +0 -1
  83. /package/build/{bin/test.d.ts → recipes/astro.d.ts} +0 -0
  84. /package/build/{tests/package_manager.spec.d.ts → recipes/vitepress.d.ts} +0 -0
@@ -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}` : '';
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
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.4.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
@@ -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"}
@@ -1,8 +0,0 @@
1
- declare module '../src/types.ts' {
2
- interface TaskRegistry {
3
- 'bun:install': true;
4
- 'bun:install:production': true;
5
- 'bun:build': true;
6
- }
7
- }
8
- export {};
@@ -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
@@ -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"}
@@ -1,9 +0,0 @@
1
- declare module '../src/types.ts' {
2
- interface TaskRegistry {
3
- 'nodejs:install': true;
4
- 'nodejs:install:production': true;
5
- 'nodejs:build': true;
6
- 'nodejs:test': true;
7
- }
8
- }
9
- export {};
@@ -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 {};
@@ -1,51 +0,0 @@
1
- import { test } from '@japa/runner';
2
- import { set, get, has } from "../src/store.js";
3
- test.group('store', () => {
4
- test('get returns undefined when key is not set', ({ assert }) => {
5
- assert.isUndefined(get('store__unset_key'));
6
- });
7
- test('get returns default value when key is not set', ({ assert }) => {
8
- assert.equal(get('store__missing', 'fallback'), 'fallback');
9
- });
10
- test('set and get a string value', ({ assert }) => {
11
- set('store__str', 'hello');
12
- assert.equal(get('store__str'), 'hello');
13
- });
14
- test('set overwrites existing value', ({ assert }) => {
15
- set('store__overwrite', 'first');
16
- set('store__overwrite', 'second');
17
- assert.equal(get('store__overwrite'), 'second');
18
- });
19
- test('set value takes priority over default', ({ assert }) => {
20
- set('store__priority', 'actual');
21
- assert.equal(get('store__priority', 'fallback'), 'actual');
22
- });
23
- test('set and get a number', ({ assert }) => {
24
- set('store__num', 42);
25
- assert.equal(get('store__num'), 42);
26
- });
27
- test('set and get a boolean', ({ assert }) => {
28
- set('store__bool', true);
29
- assert.isTrue(get('store__bool'));
30
- });
31
- test('set and get an array', ({ assert }) => {
32
- set('store__arr', [1, 2, 3]);
33
- assert.deepEqual(get('store__arr'), [1, 2, 3]);
34
- });
35
- test('set and get an object', ({ assert }) => {
36
- set('store__obj', { a: 1, b: 'x' });
37
- assert.deepEqual(get('store__obj'), { a: 1, b: 'x' });
38
- });
39
- test('has returns false when key is not set', ({ assert }) => {
40
- assert.isFalse(has('store__has_missing'));
41
- });
42
- test('has returns true after set', ({ assert }) => {
43
- set('store__has_key', 'value');
44
- assert.isTrue(has('store__has_key'));
45
- });
46
- test('has returns true for falsy values', ({ assert }) => {
47
- set('store__has_falsy', false);
48
- assert.isTrue(has('store__has_falsy'));
49
- });
50
- });
51
- //# sourceMappingURL=store.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.spec.js","sourceRoot":"","sources":["../../tests/store.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAE/C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,2CAA2C,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/D,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,+CAA+C,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACnE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAChD,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,+BAA+B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACnD,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;QAChC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;QACjC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uCAAuC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3D,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;QAChC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1C,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;QACrB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAS,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uBAAuB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QACxB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAU,aAAa,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1C,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAW,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uBAAuB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;QACnC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAS,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uCAAuC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAChD,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;QAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,mCAAmC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACvD,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,108 +0,0 @@
1
- import { test } from '@japa/runner';
2
- import { task, hasTask, getTasks, runTask, cd, run, bin, isVerbose } from "../src/task.js";
3
- import { Verbose } from "../src/enums.js";
4
- function makeDeployCtx() {
5
- return {
6
- release: '2024-01-15T10-00-00-000Z',
7
- hooks: {},
8
- config: {
9
- keepReleases: 5,
10
- hosts: [],
11
- verbose: 0,
12
- },
13
- };
14
- }
15
- function makeHost() {
16
- return {
17
- name: 'test',
18
- ssh: 'user@localhost',
19
- deployPath: '/home/deploy/app',
20
- };
21
- }
22
- test.group('task — registration', () => {
23
- test('task registers a task function', ({ assert }) => {
24
- task('test:register_a', () => { });
25
- assert.isTrue(hasTask('test:register_a'));
26
- });
27
- test('hasTask returns false for an unknown task', ({ assert }) => {
28
- assert.isFalse(hasTask('task:nonexistent_xyz'));
29
- });
30
- test('getTasks includes all registered tasks', ({ assert }) => {
31
- task('test:list_a', () => { });
32
- task('test:list_b', () => { });
33
- const tasks = getTasks();
34
- assert.include(tasks, 'test:list_a');
35
- assert.include(tasks, 'test:list_b');
36
- });
37
- test('registering a task twice overwrites it', ({ assert }) => {
38
- let result = 'none';
39
- task('test:overwrite', () => {
40
- result = 'first';
41
- });
42
- task('test:overwrite', () => {
43
- result = 'second';
44
- });
45
- assert.isTrue(hasTask('test:overwrite'));
46
- assert.equal(result, 'none');
47
- });
48
- });
49
- test.group('task — runTask', () => {
50
- test('runTask calls the registered task function', async ({ assert }) => {
51
- let called = false;
52
- task('test:run_sync', async () => {
53
- called = true;
54
- });
55
- await runTask('test:run_sync', makeDeployCtx(), makeHost());
56
- assert.isTrue(called);
57
- });
58
- test('runTask passes TaskContext to the task function', async ({ assert }) => {
59
- let receivedHost;
60
- task('test:run_ctx', async ({ host }) => {
61
- receivedHost = host;
62
- });
63
- const host = makeHost();
64
- await runTask('test:run_ctx', makeDeployCtx(), host);
65
- assert.equal(receivedHost?.name, host.name);
66
- });
67
- test('runTask throws when the task does not exist', async ({ assert }) => {
68
- await assert.rejects(() => runTask('task:does_not_exist_xyz', makeDeployCtx(), makeHost()), /Task not found/);
69
- });
70
- });
71
- test.group('task — DSL', () => {
72
- test('cd throws when called outside a task context', ({ assert }) => {
73
- assert.throws(() => cd('/tmp'), /must be called inside a task/);
74
- });
75
- test('run throws when called outside a task context', ({ assert }) => {
76
- assert.throws(() => run('echo hello'), /must be called inside a task/);
77
- });
78
- test('bin returns the binary name when no context is set', ({ assert }) => {
79
- assert.equal(bin('node'), 'node');
80
- assert.equal(bin('pnpm'), 'pnpm');
81
- });
82
- test('bin resolves from host.bin when inside a task', async ({ assert }) => {
83
- let resolved;
84
- task('test:bin_ctx', async ({ host: _ }) => {
85
- resolved = bin('node');
86
- });
87
- const host = {
88
- ...makeHost(),
89
- bin: { node: '/home/deploy/.nvm/versions/node/v22/bin/node' },
90
- };
91
- await runTask('test:bin_ctx', makeDeployCtx(), host);
92
- assert.equal(resolved, '/home/deploy/.nvm/versions/node/v22/bin/node');
93
- });
94
- test('isVerbose returns false when no context is set', ({ assert }) => {
95
- assert.equal(isVerbose(Verbose.NORMAL), false);
96
- });
97
- test('isVerbose returns true when level matches config verbose', async ({ assert }) => {
98
- let result;
99
- task('test:verbose_ctx', async () => {
100
- result = isVerbose(Verbose.TRACE);
101
- });
102
- const ctx = makeDeployCtx();
103
- ctx.config.verbose = Verbose.TRACE;
104
- await runTask('test:verbose_ctx', ctx, makeHost());
105
- assert.equal(result, true);
106
- });
107
- });
108
- //# sourceMappingURL=task.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task.spec.js","sourceRoot":"","sources":["../../tests/task.spec.ts"],"names":[],"mappings":"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"}
File without changes