anycloud 0.0.12 → 0.0.14
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/binaries/anycloud-darwin-arm64 +0 -0
- package/binaries/anycloud-darwin-x64 +0 -0
- package/binaries/anycloud-linux-arm64 +0 -0
- package/binaries/anycloud-linux-x64 +0 -0
- package/dist/cli/commands/build.js +6 -6
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/daemon/index.js +34 -14
- package/dist/cli/commands/daemon/index.js.map +1 -1
- package/dist/cli/commands/logs.js +2 -9
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/run.js +82 -69
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/status.js +82 -20
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/terminate.js +27 -46
- package/dist/cli/commands/terminate.js.map +1 -1
- package/dist/cli/services/api-client.js +14 -6
- package/dist/cli/services/api-client.js.map +1 -1
- package/dist/cli/services/docker.js +14 -68
- package/dist/cli/services/docker.js.map +1 -1
- package/dist/daemon/cluster.js +23 -25
- package/dist/daemon/cluster.js.map +1 -1
- package/dist/shared/types.js +15 -1
- package/dist/shared/types.js.map +1 -1
- package/package.json +10 -9
- package/dist/daemon/cert.js +0 -31
- package/dist/daemon/cert.js.map +0 -1
- package/dist/daemon/docker.js +0 -208
- package/dist/daemon/docker.js.map +0 -1
- package/dist/daemon/server.js +0 -255
- package/dist/daemon/server.js.map +0 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -5,17 +5,17 @@ import { resolveAndPushImage } from '../services/docker.js';
|
|
|
5
5
|
export function createBuildCommand() {
|
|
6
6
|
return new Command('build')
|
|
7
7
|
.description('🔨 Build and push container image to registry')
|
|
8
|
-
.
|
|
8
|
+
.option('-t, --tag <tag>', 'Tag for the image (default: latest)')
|
|
9
9
|
.option('-f, --force', 'Allow build with uncommitted changes')
|
|
10
10
|
.addHelpText('after', `
|
|
11
11
|
Examples:
|
|
12
|
-
$ anycloud build # Build from Dockerfile, push
|
|
12
|
+
$ anycloud build # Build from Dockerfile, push as :latest
|
|
13
|
+
$ anycloud build -t v1.0 # Build and push as :v1.0
|
|
13
14
|
$ anycloud build --force # Build even with uncommitted changes
|
|
14
15
|
|
|
15
16
|
Output:
|
|
16
|
-
Building and pushing to: ghcr.io/user/repo:latest
|
|
17
|
+
Building and pushing to: ghcr.io/user/repo:latest
|
|
17
18
|
✓ Build complete
|
|
18
|
-
✓ Pushed ghcr.io/user/repo:abc12345
|
|
19
19
|
✓ Pushed ghcr.io/user/repo:latest
|
|
20
20
|
|
|
21
21
|
Image: ghcr.io/user/repo:latest
|
|
@@ -23,7 +23,7 @@ Output:
|
|
|
23
23
|
Deploy with:
|
|
24
24
|
anycloud run ghcr.io/user/repo:latest --config <config>
|
|
25
25
|
`)
|
|
26
|
-
.action(async (
|
|
26
|
+
.action(async (options) => {
|
|
27
27
|
try {
|
|
28
28
|
// Get GitHub token and username
|
|
29
29
|
const accessToken = await getGitHubToken();
|
|
@@ -31,7 +31,7 @@ Output:
|
|
|
31
31
|
// Build and push image
|
|
32
32
|
console.log('');
|
|
33
33
|
const finalImage = await resolveAndPushImage(undefined, // Always build from Dockerfile
|
|
34
|
-
accessToken, githubUsername, options.force);
|
|
34
|
+
accessToken, githubUsername, options.force, options.tag);
|
|
35
35
|
console.log('');
|
|
36
36
|
printInfo(`Image: ${finalImage}`);
|
|
37
37
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,iBAAiB,EAAE,qCAAqC,CAAC;SAChE,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;SAC7D,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;CAeL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,OAA0C,EAAE,EAAE;QAC3D,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAE5D,uBAAuB;YACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C,SAAS,EAAE,+BAA+B;YAC1C,WAAW,EACX,cAAc,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,GAAG,CACZ,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,SAAS,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,SAAS,CAAC,cAAc,CAAC,CAAC;YAC1B,SAAS,CAAC,kBAAkB,UAAU,oBAAoB,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sDAAsD;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,28 +1,36 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import { startServer } from '../../../daemon/server.js';
|
|
3
2
|
import { log } from '../../../daemon/logger.js';
|
|
4
|
-
import {
|
|
3
|
+
import { Coordinator } from '../../../daemon/cluster.js';
|
|
5
4
|
export function createDaemonCommand() {
|
|
6
5
|
return new Command('daemon')
|
|
7
6
|
.description('Start the AnyCloud daemon (runs on VMs)')
|
|
8
|
-
.argument('<
|
|
7
|
+
.argument('<props-json>', 'JSON string containing DeploymentProps')
|
|
9
8
|
.argument('<conductor-url>', 'URL of the conductor to connect to')
|
|
10
|
-
.
|
|
11
|
-
.action(async (secret, conductorUrl, options) => {
|
|
9
|
+
.action(async (propsJson, conductorUrl) => {
|
|
12
10
|
try {
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
options.type !== DeploymentType.Job) {
|
|
16
|
-
log.error('Invalid deployment type. Must be either "server" or "job"');
|
|
17
|
-
process.exit(1);
|
|
18
|
-
}
|
|
19
|
-
const deploymentType = options.type;
|
|
11
|
+
// Parse deployment props from JSON string
|
|
12
|
+
const deploymentProps = JSON.parse(propsJson);
|
|
20
13
|
log.info('Starting AnyCloud Daemon', {
|
|
21
|
-
|
|
14
|
+
deploymentId: deploymentProps.id,
|
|
15
|
+
deploymentType: deploymentProps.deploymentType,
|
|
22
16
|
nodeVersion: process.version,
|
|
23
17
|
});
|
|
24
|
-
|
|
18
|
+
// Setup process handlers
|
|
19
|
+
setupProcessHandlers();
|
|
20
|
+
// Create coordinator and start
|
|
21
|
+
const coordinator = new Coordinator();
|
|
22
|
+
await coordinator.start(conductorUrl, deploymentProps);
|
|
23
|
+
// Graceful shutdown
|
|
24
|
+
const shutdown = async () => {
|
|
25
|
+
log.info('Shutdown signal received');
|
|
26
|
+
await coordinator.stop();
|
|
27
|
+
process.exit(0);
|
|
28
|
+
};
|
|
29
|
+
process.on('SIGTERM', shutdown);
|
|
30
|
+
process.on('SIGINT', shutdown);
|
|
25
31
|
log.info('Daemon started successfully');
|
|
32
|
+
// Keep process alive
|
|
33
|
+
await new Promise(() => { });
|
|
26
34
|
}
|
|
27
35
|
catch (error) {
|
|
28
36
|
log.error('Failed to start daemon', error);
|
|
@@ -30,4 +38,16 @@ export function createDaemonCommand() {
|
|
|
30
38
|
}
|
|
31
39
|
});
|
|
32
40
|
}
|
|
41
|
+
function setupProcessHandlers() {
|
|
42
|
+
process.on('uncaughtException', (error) => {
|
|
43
|
+
log.error('Uncaught exception', {
|
|
44
|
+
error: error.message,
|
|
45
|
+
stack: error.stack,
|
|
46
|
+
});
|
|
47
|
+
setTimeout(() => process.exit(1), 1000);
|
|
48
|
+
});
|
|
49
|
+
process.on('unhandledRejection', (reason) => {
|
|
50
|
+
log.warn('Unhandled promise rejection', { reason: String(reason) });
|
|
51
|
+
});
|
|
52
|
+
}
|
|
33
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,cAAc,EAAE,wCAAwC,CAAC;SAClE,QAAQ,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,YAAoB,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,eAAe,GAAoB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAE/D,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACnC,YAAY,EAAE,eAAe,CAAC,EAAE;gBAChC,cAAc,EAAE,eAAe,CAAC,cAAc;gBAC9C,WAAW,EAAE,OAAO,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,yBAAyB;YACzB,oBAAoB,EAAE,CAAC;YAEvB,+BAA+B;YAC/B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;YACtC,MAAM,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;YAEvD,oBAAoB;YACpB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;gBAC1B,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACrC,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC;YAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAE/B,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAExC,qBAAqB;YACrB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAY,EAAE,EAAE;QAC/C,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE;YAC9B,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAe,EAAE,EAAE;QACnD,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -4,15 +4,8 @@ import { getGitHubToken } from '../services/auth.js';
|
|
|
4
4
|
import { getDockerLogs, listDeployments } from '../services/api-client.js';
|
|
5
5
|
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
6
6
|
import { isNonInteractive, getEnvOptional, } from '../services/non-interactive.js';
|
|
7
|
-
import {
|
|
7
|
+
import { stateEmoji } from '../../shared/types.js';
|
|
8
8
|
import packageJson from '../../../package.json' with { type: 'json' };
|
|
9
|
-
const stateEmoji = {
|
|
10
|
-
[DeploymentState.Provisioning]: '🟡',
|
|
11
|
-
[DeploymentState.Running]: '🟢',
|
|
12
|
-
[DeploymentState.Failed]: '🔴',
|
|
13
|
-
[DeploymentState.Terminating]: '🟠',
|
|
14
|
-
[DeploymentState.Terminated]: '⚫',
|
|
15
|
-
};
|
|
16
9
|
export function createLogsCommand() {
|
|
17
10
|
return new Command('logs')
|
|
18
11
|
.description('📝 Get container logs')
|
|
@@ -75,7 +68,7 @@ Output:
|
|
|
75
68
|
return {
|
|
76
69
|
title: deployment.id,
|
|
77
70
|
value: deployment.id,
|
|
78
|
-
description: `${emoji}
|
|
71
|
+
description: `${emoji} ${deployment.state}`,
|
|
79
72
|
};
|
|
80
73
|
}),
|
|
81
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/commands/run.js
CHANGED
|
@@ -15,10 +15,10 @@ import { resolveAndPushImage } from '../services/docker.js';
|
|
|
15
15
|
import { getGitHubUsername } from '../services/auth.js';
|
|
16
16
|
import packageJson from '../../../package.json' with { type: 'json' };
|
|
17
17
|
/**
|
|
18
|
-
* Fetch
|
|
18
|
+
* Fetch all tags for a specific package
|
|
19
19
|
*/
|
|
20
|
-
async function
|
|
21
|
-
const
|
|
20
|
+
async function fetchPackageTags(token, owner, packageName, isOrg) {
|
|
21
|
+
const tags = [];
|
|
22
22
|
const baseUrl = isOrg
|
|
23
23
|
? `https://api.github.com/orgs/${owner}/packages/container/${packageName}/versions`
|
|
24
24
|
: `https://api.github.com/user/packages/container/${packageName}/versions`;
|
|
@@ -31,32 +31,27 @@ async function fetchPackageVersions(token, owner, packageName, isOrg) {
|
|
|
31
31
|
});
|
|
32
32
|
if (versionsResponse.ok) {
|
|
33
33
|
const versions = (await versionsResponse.json());
|
|
34
|
-
//
|
|
35
|
-
for (const version of versions
|
|
36
|
-
const
|
|
37
|
-
for (const tag of
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
tag,
|
|
42
|
-
full,
|
|
43
|
-
owner,
|
|
44
|
-
isOrg,
|
|
45
|
-
});
|
|
34
|
+
// Collect all tags from versions
|
|
35
|
+
for (const version of versions) {
|
|
36
|
+
const versionTags = version.metadata?.container?.tags || [];
|
|
37
|
+
for (const tag of versionTags) {
|
|
38
|
+
if (!tags.includes(tag)) {
|
|
39
|
+
tags.push(tag);
|
|
40
|
+
}
|
|
46
41
|
}
|
|
47
42
|
}
|
|
48
43
|
}
|
|
49
44
|
}
|
|
50
45
|
catch {
|
|
51
|
-
//
|
|
46
|
+
// Return empty on error
|
|
52
47
|
}
|
|
53
|
-
return
|
|
48
|
+
return tags;
|
|
54
49
|
}
|
|
55
50
|
/**
|
|
56
|
-
* List GitHub Container Registry packages for authenticated user and their orgs
|
|
51
|
+
* List GitHub Container Registry packages (repos) for authenticated user and their orgs
|
|
57
52
|
*/
|
|
58
53
|
async function listGitHubPackages(token) {
|
|
59
|
-
const
|
|
54
|
+
const repos = [];
|
|
60
55
|
try {
|
|
61
56
|
// Get authenticated user
|
|
62
57
|
const userResponse = await fetch('https://api.github.com/user', {
|
|
@@ -86,18 +81,20 @@ async function listGitHubPackages(token) {
|
|
|
86
81
|
// Process user's packages
|
|
87
82
|
if (userPackagesResponse.ok) {
|
|
88
83
|
const packages = (await userPackagesResponse.json());
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
84
|
+
for (const pkg of packages) {
|
|
85
|
+
repos.push({
|
|
86
|
+
name: `ghcr.io/${user.login}/${pkg.name}`,
|
|
87
|
+
owner: user.login,
|
|
88
|
+
packageName: pkg.name,
|
|
89
|
+
isOrg: false,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
95
92
|
}
|
|
96
93
|
// Process org packages
|
|
97
94
|
if (orgsResponse.ok) {
|
|
98
95
|
const orgs = (await orgsResponse.json());
|
|
99
|
-
// Fetch packages for each org in parallel
|
|
100
|
-
const orgPackagePromises = orgs.
|
|
96
|
+
// Fetch packages for each org in parallel
|
|
97
|
+
const orgPackagePromises = orgs.map(async (org) => {
|
|
101
98
|
try {
|
|
102
99
|
const orgPackagesResponse = await fetch(`https://api.github.com/orgs/${org.login}/packages?package_type=container`, {
|
|
103
100
|
headers: {
|
|
@@ -108,21 +105,21 @@ async function listGitHubPackages(token) {
|
|
|
108
105
|
if (!orgPackagesResponse.ok)
|
|
109
106
|
return [];
|
|
110
107
|
const orgPackages = (await orgPackagesResponse.json());
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
108
|
+
return orgPackages.map((pkg) => ({
|
|
109
|
+
name: `ghcr.io/${org.login}/${pkg.name}`,
|
|
110
|
+
owner: org.login,
|
|
111
|
+
packageName: pkg.name,
|
|
112
|
+
isOrg: true,
|
|
113
|
+
}));
|
|
117
114
|
}
|
|
118
115
|
catch {
|
|
119
116
|
return [];
|
|
120
117
|
}
|
|
121
118
|
});
|
|
122
|
-
const
|
|
123
|
-
|
|
119
|
+
const allOrgRepos = await Promise.all(orgPackagePromises);
|
|
120
|
+
repos.push(...allOrgRepos.flat());
|
|
124
121
|
}
|
|
125
|
-
return
|
|
122
|
+
return repos;
|
|
126
123
|
}
|
|
127
124
|
catch {
|
|
128
125
|
return [];
|
|
@@ -249,61 +246,77 @@ Output:
|
|
|
249
246
|
' Provide image as first argument.');
|
|
250
247
|
process.exit(1);
|
|
251
248
|
}
|
|
252
|
-
const spinner = createSpinner('Loading available
|
|
253
|
-
// Load GitHub packages
|
|
254
|
-
const
|
|
249
|
+
const spinner = createSpinner('Loading available repos...').start();
|
|
250
|
+
// Load GitHub packages (repos)
|
|
251
|
+
const repos = await listGitHubPackages(accessToken);
|
|
255
252
|
spinner.stop();
|
|
256
|
-
//
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
const choices = [];
|
|
266
|
-
// Add existing GHCR images (personal first, then orgs)
|
|
267
|
-
const personalImages = dedupedGhcrImages.filter((img) => !img.isOrg);
|
|
268
|
-
const orgImages = dedupedGhcrImages.filter((img) => img.isOrg);
|
|
269
|
-
for (const img of personalImages) {
|
|
270
|
-
choices.push({
|
|
271
|
-
title: img.full,
|
|
272
|
-
value: img.full,
|
|
253
|
+
// Build choices for repo selection
|
|
254
|
+
const repoChoices = [];
|
|
255
|
+
// Add existing repos (personal first, then orgs)
|
|
256
|
+
const personalRepos = repos.filter((r) => !r.isOrg);
|
|
257
|
+
const orgRepos = repos.filter((r) => r.isOrg);
|
|
258
|
+
for (const repo of personalRepos) {
|
|
259
|
+
repoChoices.push({
|
|
260
|
+
title: repo.name,
|
|
261
|
+
value: repo,
|
|
273
262
|
description: 'personal',
|
|
274
263
|
});
|
|
275
264
|
}
|
|
276
|
-
for (const
|
|
277
|
-
|
|
278
|
-
title:
|
|
279
|
-
value:
|
|
280
|
-
description: `org: ${
|
|
265
|
+
for (const repo of orgRepos) {
|
|
266
|
+
repoChoices.push({
|
|
267
|
+
title: repo.name,
|
|
268
|
+
value: repo,
|
|
269
|
+
description: `org: ${repo.owner}`,
|
|
281
270
|
});
|
|
282
271
|
}
|
|
283
272
|
// Add option to build new image
|
|
284
|
-
|
|
273
|
+
repoChoices.push({
|
|
285
274
|
title: 'Build and push a new image from local dir',
|
|
286
275
|
value: '__build__',
|
|
287
276
|
description: 'Build from Dockerfile in current directory',
|
|
288
277
|
});
|
|
289
278
|
console.log('');
|
|
290
|
-
const
|
|
279
|
+
const repoSelection = await prompts({
|
|
291
280
|
type: 'select',
|
|
292
|
-
name: '
|
|
293
|
-
message: 'Select
|
|
294
|
-
choices,
|
|
281
|
+
name: 'repo',
|
|
282
|
+
message: 'Select repo:',
|
|
283
|
+
choices: repoChoices,
|
|
295
284
|
});
|
|
296
|
-
if (!
|
|
285
|
+
if (!repoSelection.repo) {
|
|
297
286
|
process.exit(0);
|
|
298
287
|
}
|
|
299
|
-
if (
|
|
288
|
+
if (repoSelection.repo === '__build__') {
|
|
300
289
|
// Build and push new image
|
|
301
290
|
const githubUsername = await getGitHubUsername(accessToken);
|
|
302
291
|
console.log('');
|
|
303
292
|
image = await resolveAndPushImage(undefined, accessToken, githubUsername);
|
|
304
293
|
}
|
|
305
294
|
else {
|
|
306
|
-
|
|
295
|
+
// Fetch tags for the selected repo
|
|
296
|
+
const selectedRepo = repoSelection.repo;
|
|
297
|
+
const tagSpinner = createSpinner(`Loading tags for ${selectedRepo.packageName}...`).start();
|
|
298
|
+
const tags = await fetchPackageTags(accessToken, selectedRepo.owner, selectedRepo.packageName, selectedRepo.isOrg);
|
|
299
|
+
tagSpinner.stop();
|
|
300
|
+
if (tags.length === 0) {
|
|
301
|
+
printError(`No tags found for ${selectedRepo.name}`);
|
|
302
|
+
process.exit(1);
|
|
303
|
+
}
|
|
304
|
+
// Build choices for tag selection
|
|
305
|
+
const tagChoices = tags.map((tag) => ({
|
|
306
|
+
title: tag,
|
|
307
|
+
value: tag,
|
|
308
|
+
}));
|
|
309
|
+
console.log('');
|
|
310
|
+
const tagSelection = await prompts({
|
|
311
|
+
type: 'select',
|
|
312
|
+
name: 'tag',
|
|
313
|
+
message: 'Select tag:',
|
|
314
|
+
choices: tagChoices,
|
|
315
|
+
});
|
|
316
|
+
if (!tagSelection.tag) {
|
|
317
|
+
process.exit(0);
|
|
318
|
+
}
|
|
319
|
+
image = `${selectedRepo.name}:${tagSelection.tag}`;
|
|
307
320
|
}
|
|
308
321
|
}
|
|
309
322
|
// Parse environment variables from file if provided
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,37 @@ import { getGitHubToken } from '../services/auth.js';
|
|
|
4
4
|
import { getDeploymentStatus, listDeployments, } from '../services/api-client.js';
|
|
5
5
|
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
6
6
|
import { isNonInteractive, getEnvOptional, } from '../services/non-interactive.js';
|
|
7
|
-
import { DeploymentState } from '../../shared/types.js';
|
|
7
|
+
import { DeploymentState, stateEmoji } from '../../shared/types.js';
|
|
8
8
|
import packageJson from '../../../package.json' with { type: 'json' };
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
// Strip Docker log stream headers (non-printable chars at start of lines)
|
|
10
|
+
const cleanLogLine = (line) => {
|
|
11
|
+
let start = 0;
|
|
12
|
+
while (start < line.length && line.charCodeAt(start) < 32)
|
|
13
|
+
start++;
|
|
14
|
+
return line.slice(start).trim();
|
|
15
|
+
};
|
|
16
|
+
// Truncate line to max length
|
|
17
|
+
const truncate = (line, max = 60) => line.length > max ? line.slice(0, max - 3) + '...' : line;
|
|
18
|
+
// Format error logs with box drawing character
|
|
19
|
+
const formatErrorLogs = (logs) => {
|
|
20
|
+
const lines = logs
|
|
21
|
+
.split('\n')
|
|
22
|
+
.map(cleanLogLine)
|
|
23
|
+
.filter((l) => l.length > 0)
|
|
24
|
+
.slice(-5)
|
|
25
|
+
.map((l) => ` │ ${truncate(l)}`);
|
|
26
|
+
return lines.length > 0 ? [' │', ...lines, ' │'] : [];
|
|
27
|
+
};
|
|
28
|
+
// Extract pid and uptime from supervisor status like "anycloud-daemon RUNNING pid 16393, uptime 0:59:27"
|
|
29
|
+
const parseDaemonStatus = (status) => {
|
|
30
|
+
const match = status.match(/(\w+)\s+(\w+)\s+pid\s+(\d+),\s+uptime\s+([\d:]+)/);
|
|
31
|
+
if (match) {
|
|
32
|
+
return {
|
|
33
|
+
state: match[2].toLowerCase(),
|
|
34
|
+
details: `pid ${match[3]}, ${match[4]}`,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return { state: status };
|
|
15
38
|
};
|
|
16
39
|
export function createStatusCommand() {
|
|
17
40
|
return new Command('status')
|
|
@@ -23,12 +46,20 @@ Examples:
|
|
|
23
46
|
$ anycloud status
|
|
24
47
|
|
|
25
48
|
Output:
|
|
26
|
-
|
|
49
|
+
☁️ deployed
|
|
27
50
|
|
|
28
51
|
VMs:
|
|
29
|
-
|
|
52
|
+
1.2.3.4
|
|
53
|
+
✓ container running
|
|
54
|
+
✓ daemon running (pid 16393, 0:59:27)
|
|
55
|
+
✓ bucket active
|
|
30
56
|
|
|
31
|
-
[
|
|
57
|
+
[07:23:05 UTC] Deploying your service...
|
|
58
|
+
[07:23:37 UTC] Standard_B2s node at Azure westus2 is creating...
|
|
59
|
+
[07:24:01 UTC] Standard_B2s node 1.2.3.4 at Azure westus2 is waiting...
|
|
60
|
+
[07:24:15 UTC] Standard_B2s node 1.2.3.4 at Azure westus2 is starting...
|
|
61
|
+
[07:24:30 UTC] Standard_B2s node 1.2.3.4 at Azure westus2 is ready...
|
|
62
|
+
[07:24:30 UTC] Deployment complete!
|
|
32
63
|
`)
|
|
33
64
|
.action(async (id) => {
|
|
34
65
|
try {
|
|
@@ -53,9 +84,8 @@ Output:
|
|
|
53
84
|
const deployments = await listDeployments(accessToken, packageJson.version);
|
|
54
85
|
loadingSpinner.stop();
|
|
55
86
|
if (deployments.length === 0) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
process.exit(1);
|
|
87
|
+
printInfo('No deployments found.');
|
|
88
|
+
process.exit(0);
|
|
59
89
|
}
|
|
60
90
|
// Prompt for deployment selection
|
|
61
91
|
const selection = await prompts({
|
|
@@ -67,7 +97,7 @@ Output:
|
|
|
67
97
|
return {
|
|
68
98
|
title: deployment.id,
|
|
69
99
|
value: { id: deployment.id, state: deployment.state },
|
|
70
|
-
description: `${emoji}
|
|
100
|
+
description: `${emoji} ${deployment.state}`,
|
|
71
101
|
};
|
|
72
102
|
}),
|
|
73
103
|
});
|
|
@@ -88,23 +118,55 @@ Output:
|
|
|
88
118
|
const spinner = createSpinner(`Fetching status...`).start();
|
|
89
119
|
const response = await getDeploymentStatus(deploymentId, accessToken, packageJson.version);
|
|
90
120
|
spinner.stop();
|
|
91
|
-
// Header: ID
|
|
121
|
+
// Header: state only (ID already shown in selection or logs)
|
|
92
122
|
const emoji = deploymentState
|
|
93
123
|
? stateEmoji[deploymentState] || '❓'
|
|
94
124
|
: '❓';
|
|
95
125
|
const stateText = deploymentState || 'unknown';
|
|
96
126
|
console.log('');
|
|
97
|
-
console.log(`${
|
|
127
|
+
console.log(`${emoji} ${stateText}`);
|
|
98
128
|
console.log('');
|
|
99
129
|
// Show per-VM status if available
|
|
100
130
|
if (response.vmStatuses && response.vmStatuses.length > 0) {
|
|
131
|
+
const isPending = deploymentState === DeploymentState.Starting;
|
|
101
132
|
console.log('VMs:');
|
|
102
133
|
response.vmStatuses.forEach((vm) => {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
134
|
+
console.log(` ${vm.ip}`);
|
|
135
|
+
// Container status
|
|
136
|
+
const containerOk = vm.container?.healthy ?? false;
|
|
137
|
+
const containerIcon = isPending ? '◌' : containerOk ? '✓' : '✗';
|
|
138
|
+
const containerState = isPending
|
|
139
|
+
? 'pending'
|
|
140
|
+
: vm.container?.state || 'unknown';
|
|
141
|
+
console.log(` ${containerIcon} container ${containerState}`);
|
|
142
|
+
if (!isPending && !containerOk && vm.container?.logs) {
|
|
143
|
+
formatErrorLogs(vm.container.logs).forEach((line) => console.log(line));
|
|
144
|
+
}
|
|
145
|
+
// Daemon status
|
|
146
|
+
const daemonOk = vm.daemon?.running ?? false;
|
|
147
|
+
const daemonIcon = isPending ? '◌' : daemonOk ? '✓' : '✗';
|
|
148
|
+
const daemonStatus = isPending
|
|
149
|
+
? { state: 'pending' }
|
|
150
|
+
: parseDaemonStatus(vm.daemon?.status || 'unknown');
|
|
151
|
+
const daemonLine = daemonStatus.details
|
|
152
|
+
? `${daemonStatus.state} (${daemonStatus.details})`
|
|
153
|
+
: daemonStatus.state;
|
|
154
|
+
console.log(` ${daemonIcon} daemon ${daemonLine}`);
|
|
155
|
+
if (!isPending && !daemonOk && vm.daemon?.logs) {
|
|
156
|
+
formatErrorLogs(vm.daemon.logs).forEach((line) => console.log(line));
|
|
157
|
+
}
|
|
158
|
+
// Bucket sync status (omit if not configured)
|
|
159
|
+
if (vm.rclone && !vm.rclone.status.includes('no such process')) {
|
|
160
|
+
const bucketOk = vm.rclone.active ?? false;
|
|
161
|
+
const bucketIcon = isPending ? '◌' : bucketOk ? '✓' : '✗';
|
|
162
|
+
const bucketState = isPending ? 'pending' : vm.rclone.status;
|
|
163
|
+
console.log(` ${bucketIcon} bucket ${bucketState}`);
|
|
164
|
+
if (!isPending && !bucketOk && vm.rclone.logs) {
|
|
165
|
+
formatErrorLogs(vm.rclone.logs).forEach((line) => console.log(line));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
console.log('');
|
|
106
169
|
});
|
|
107
|
-
console.log('');
|
|
108
170
|
}
|
|
109
171
|
// Logs (no dividers)
|
|
110
172
|
if (response.message.trim()) {
|