@catapultjs/deploy 0.5.0 → 0.6.1

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 (73) hide show
  1. package/build/bin/run.js +31 -1
  2. package/build/bin/run.js.map +1 -1
  3. package/build/index.d.ts +1 -0
  4. package/build/index.js +1 -0
  5. package/build/index.js.map +1 -1
  6. package/build/recipes/adonisjs.d.ts +5 -3
  7. package/build/recipes/adonisjs.js +26 -31
  8. package/build/recipes/adonisjs.js.map +1 -1
  9. package/build/recipes/astro.js +15 -0
  10. package/build/recipes/astro.js.map +1 -0
  11. package/build/recipes/directus.d.ts +8 -0
  12. package/build/recipes/directus.js +30 -0
  13. package/build/recipes/directus.js.map +1 -0
  14. package/build/recipes/git.js +3 -3
  15. package/build/recipes/git.js.map +1 -1
  16. package/build/recipes/nuxt.d.ts +6 -0
  17. package/build/recipes/nuxt.js +18 -0
  18. package/build/recipes/nuxt.js.map +1 -0
  19. package/build/recipes/redis.d.ts +7 -0
  20. package/build/recipes/redis.js +14 -0
  21. package/build/recipes/redis.js.map +1 -0
  22. package/build/recipes/rsync.js +6 -5
  23. package/build/recipes/rsync.js.map +1 -1
  24. package/build/recipes/vitepress.js +14 -0
  25. package/build/recipes/vitepress.js.map +1 -0
  26. package/build/src/actions.d.ts +1 -0
  27. package/build/src/actions.js +17 -0
  28. package/build/src/actions.js.map +1 -0
  29. package/build/src/defaults.d.ts +3 -1
  30. package/build/src/defaults.js +37 -38
  31. package/build/src/defaults.js.map +1 -1
  32. package/build/src/define_config.js +5 -13
  33. package/build/src/define_config.js.map +1 -1
  34. package/build/src/enums.d.ts +0 -5
  35. package/build/src/enums.js +0 -4
  36. package/build/src/enums.js.map +1 -1
  37. package/build/src/package_manager.d.ts +1 -0
  38. package/build/src/package_manager.js +10 -1
  39. package/build/src/package_manager.js.map +1 -1
  40. package/build/src/pipeline/store.d.ts +1 -0
  41. package/build/src/pipeline/store.js +18 -14
  42. package/build/src/pipeline/store.js.map +1 -1
  43. package/build/src/pipeline.d.ts +3 -1
  44. package/build/src/pipeline.js +4 -0
  45. package/build/src/pipeline.js.map +1 -1
  46. package/build/src/task/runner.js +7 -4
  47. package/build/src/task/runner.js.map +1 -1
  48. package/build/src/types.d.ts +1 -3
  49. package/build/src/utils.d.ts +2 -0
  50. package/build/src/utils.js +20 -1
  51. package/build/src/utils.js.map +1 -1
  52. package/package.json +8 -2
  53. package/build/bin/test.js +0 -9
  54. package/build/bin/test.js.map +0 -1
  55. package/build/recipes/bun.d.ts +0 -8
  56. package/build/recipes/bun.js +0 -22
  57. package/build/recipes/bun.js.map +0 -1
  58. package/build/recipes/nodejs.d.ts +0 -9
  59. package/build/recipes/nodejs.js +0 -43
  60. package/build/recipes/nodejs.js.map +0 -1
  61. package/build/tests/package_manager.spec.js +0 -51
  62. package/build/tests/package_manager.spec.js.map +0 -1
  63. package/build/tests/pipeline.spec.d.ts +0 -1
  64. package/build/tests/pipeline.spec.js +0 -80
  65. package/build/tests/pipeline.spec.js.map +0 -1
  66. package/build/tests/store.spec.d.ts +0 -1
  67. package/build/tests/store.spec.js +0 -51
  68. package/build/tests/store.spec.js.map +0 -1
  69. package/build/tests/task.spec.d.ts +0 -1
  70. package/build/tests/task.spec.js +0 -108
  71. package/build/tests/task.spec.js.map +0 -1
  72. /package/build/{bin/test.d.ts → recipes/astro.d.ts} +0 -0
  73. /package/build/{tests/package_manager.spec.d.ts → recipes/vitepress.d.ts} +0 -0
@@ -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":"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"}
@@ -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