@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.
- package/build/bin/run.js +31 -1
- package/build/bin/run.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/recipes/adonisjs.d.ts +5 -3
- package/build/recipes/adonisjs.js +26 -31
- package/build/recipes/adonisjs.js.map +1 -1
- package/build/recipes/astro.js +15 -0
- package/build/recipes/astro.js.map +1 -0
- package/build/recipes/directus.d.ts +8 -0
- package/build/recipes/directus.js +30 -0
- package/build/recipes/directus.js.map +1 -0
- package/build/recipes/git.js +3 -3
- package/build/recipes/git.js.map +1 -1
- package/build/recipes/nuxt.d.ts +6 -0
- package/build/recipes/nuxt.js +18 -0
- package/build/recipes/nuxt.js.map +1 -0
- package/build/recipes/redis.d.ts +7 -0
- package/build/recipes/redis.js +14 -0
- package/build/recipes/redis.js.map +1 -0
- package/build/recipes/rsync.js +6 -5
- package/build/recipes/rsync.js.map +1 -1
- package/build/recipes/vitepress.js +14 -0
- package/build/recipes/vitepress.js.map +1 -0
- package/build/src/actions.d.ts +1 -0
- package/build/src/actions.js +17 -0
- package/build/src/actions.js.map +1 -0
- package/build/src/defaults.d.ts +3 -1
- package/build/src/defaults.js +37 -38
- package/build/src/defaults.js.map +1 -1
- package/build/src/define_config.js +5 -13
- package/build/src/define_config.js.map +1 -1
- package/build/src/enums.d.ts +0 -5
- package/build/src/enums.js +0 -4
- package/build/src/enums.js.map +1 -1
- package/build/src/package_manager.d.ts +1 -0
- package/build/src/package_manager.js +10 -1
- package/build/src/package_manager.js.map +1 -1
- package/build/src/pipeline/store.d.ts +1 -0
- package/build/src/pipeline/store.js +18 -14
- package/build/src/pipeline/store.js.map +1 -1
- package/build/src/pipeline.d.ts +3 -1
- package/build/src/pipeline.js +4 -0
- package/build/src/pipeline.js.map +1 -1
- package/build/src/task/runner.js +7 -4
- package/build/src/task/runner.js.map +1 -1
- package/build/src/types.d.ts +1 -3
- package/build/src/utils.d.ts +2 -0
- package/build/src/utils.js +20 -1
- package/build/src/utils.js.map +1 -1
- package/package.json +8 -2
- package/build/bin/test.js +0 -9
- package/build/bin/test.js.map +0 -1
- package/build/recipes/bun.d.ts +0 -8
- package/build/recipes/bun.js +0 -22
- package/build/recipes/bun.js.map +0 -1
- package/build/recipes/nodejs.d.ts +0 -9
- package/build/recipes/nodejs.js +0 -43
- package/build/recipes/nodejs.js.map +0 -1
- package/build/tests/package_manager.spec.js +0 -51
- package/build/tests/package_manager.spec.js.map +0 -1
- package/build/tests/pipeline.spec.d.ts +0 -1
- package/build/tests/pipeline.spec.js +0 -80
- package/build/tests/pipeline.spec.js.map +0 -1
- package/build/tests/store.spec.d.ts +0 -1
- package/build/tests/store.spec.js +0 -51
- package/build/tests/store.spec.js.map +0 -1
- package/build/tests/task.spec.d.ts +0 -1
- package/build/tests/task.spec.js +0 -108
- package/build/tests/task.spec.js.map +0 -1
- /package/build/{bin/test.d.ts → recipes/astro.d.ts} +0 -0
- /package/build/{tests/package_manager.spec.d.ts → recipes/vitepress.d.ts} +0 -0
|
@@ -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 {};
|
package/build/tests/task.spec.js
DELETED
|
@@ -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
|
|
File without changes
|