indraq_cli 1.3.0 → 1.5.5
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/README.md +1082 -657
- package/dist/cli/create-program.d.ts.map +1 -1
- package/dist/cli/create-program.js +24 -6
- package/dist/cli/create-program.js.map +1 -1
- package/dist/cli/doctor.command.d.ts.map +1 -1
- package/dist/cli/doctor.command.js +23 -0
- package/dist/cli/doctor.command.js.map +1 -1
- package/dist/modules/configure/configure.command.d.ts.map +1 -0
- package/dist/modules/configure/configure.command.js +116 -0
- package/dist/modules/configure/configure.command.js.map +1 -0
- package/dist/modules/deploy/commands/build.command.d.ts +2 -2
- package/dist/modules/deploy/commands/build.command.d.ts.map +1 -1
- package/dist/modules/deploy/commands/build.command.js +45 -16
- package/dist/modules/deploy/commands/build.command.js.map +1 -1
- package/dist/modules/deploy/commands/configure-docker.command.d.ts +2 -0
- package/dist/modules/deploy/commands/configure-docker.command.d.ts.map +1 -0
- package/dist/modules/deploy/commands/configure-docker.command.js +169 -0
- package/dist/modules/deploy/commands/configure-docker.command.js.map +1 -0
- package/dist/modules/deploy/config/docker-config.d.ts +21 -0
- package/dist/modules/deploy/config/docker-config.d.ts.map +1 -0
- package/dist/modules/deploy/config/docker-config.js +187 -0
- package/dist/modules/deploy/config/docker-config.js.map +1 -0
- package/dist/modules/deploy/index.d.ts.map +1 -1
- package/dist/modules/deploy/index.js +9 -26
- package/dist/modules/deploy/index.js.map +1 -1
- package/dist/modules/mobile/commands/build-mobile.command.d.ts +11 -0
- package/dist/modules/mobile/commands/build-mobile.command.d.ts.map +1 -0
- package/dist/modules/mobile/commands/build-mobile.command.js +189 -0
- package/dist/modules/mobile/commands/build-mobile.command.js.map +1 -0
- package/dist/modules/mobile/commands/configure-mobile.command.d.ts +8 -0
- package/dist/modules/mobile/commands/configure-mobile.command.d.ts.map +1 -0
- package/dist/modules/mobile/commands/configure-mobile.command.js +353 -0
- package/dist/modules/mobile/commands/configure-mobile.command.js.map +1 -0
- package/dist/modules/mobile/config/mobile-config.d.ts +43 -0
- package/dist/modules/mobile/config/mobile-config.d.ts.map +1 -0
- package/dist/modules/mobile/config/mobile-config.js +211 -0
- package/dist/modules/mobile/config/mobile-config.js.map +1 -0
- package/dist/modules/mobile/index.d.ts +3 -0
- package/dist/modules/mobile/index.d.ts.map +1 -0
- package/dist/modules/mobile/index.js +50 -0
- package/dist/modules/mobile/index.js.map +1 -0
- package/dist/modules/mobile/services/jenkins-mobile.service.d.ts +31 -0
- package/dist/modules/mobile/services/jenkins-mobile.service.d.ts.map +1 -0
- package/dist/modules/mobile/services/jenkins-mobile.service.js +344 -0
- package/dist/modules/mobile/services/jenkins-mobile.service.js.map +1 -0
- package/dist/modules/mobile/services/project.service.d.ts +11 -0
- package/dist/modules/mobile/services/project.service.d.ts.map +1 -0
- package/dist/modules/mobile/services/project.service.js +73 -0
- package/dist/modules/mobile/services/project.service.js.map +1 -0
- package/dist/modules/mobile/services/source-bundle.service.d.ts +9 -0
- package/dist/modules/mobile/services/source-bundle.service.d.ts.map +1 -0
- package/dist/modules/mobile/services/source-bundle.service.js +114 -0
- package/dist/modules/mobile/services/source-bundle.service.js.map +1 -0
- package/dist/modules/mobile/services/version-sync.service.d.ts +7 -0
- package/dist/modules/mobile/services/version-sync.service.d.ts.map +1 -0
- package/dist/modules/mobile/services/version-sync.service.js +88 -0
- package/dist/modules/mobile/services/version-sync.service.js.map +1 -0
- package/dist/shared/config/config-files.d.ts +5 -0
- package/dist/shared/config/config-files.d.ts.map +1 -0
- package/dist/shared/config/config-files.js +88 -0
- package/dist/shared/config/config-files.js.map +1 -0
- package/dist/shared/config/jenkins-config.d.ts +36 -0
- package/dist/shared/config/jenkins-config.d.ts.map +1 -0
- package/dist/shared/config/jenkins-config.js +164 -0
- package/dist/shared/config/jenkins-config.js.map +1 -0
- package/dist/shared/jenkins/configure-jenkins.d.ts +7 -0
- package/dist/shared/jenkins/configure-jenkins.d.ts.map +1 -0
- package/dist/shared/jenkins/configure-jenkins.js +84 -0
- package/dist/shared/jenkins/configure-jenkins.js.map +1 -0
- package/dist/{modules/deploy/services → shared/jenkins}/jenkins.service.d.ts +5 -4
- package/dist/shared/jenkins/jenkins.service.d.ts.map +1 -0
- package/dist/{modules/deploy/services → shared/jenkins}/jenkins.service.js +43 -89
- package/dist/shared/jenkins/jenkins.service.js.map +1 -0
- package/dist/shared/runtime/runtime-doctor.js.map +1 -1
- package/package.json +10 -5
- package/templates/jenkins/Jenkinsfile-Mobile-App +759 -0
- package/dist/modules/deploy/commands/configure.command.d.ts.map +0 -1
- package/dist/modules/deploy/commands/configure.command.js +0 -404
- package/dist/modules/deploy/commands/configure.command.js.map +0 -1
- package/dist/modules/deploy/config/deployment-config.d.ts +0 -29
- package/dist/modules/deploy/config/deployment-config.d.ts.map +0 -1
- package/dist/modules/deploy/config/deployment-config.js +0 -164
- package/dist/modules/deploy/config/deployment-config.js.map +0 -1
- package/dist/modules/deploy/services/jenkins.service.d.ts.map +0 -1
- package/dist/modules/deploy/services/jenkins.service.js.map +0 -1
- /package/dist/modules/{deploy/commands → configure}/configure.command.d.ts +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureDockerConfig = exports.saveDockerConfig = exports.getDockerConfig = exports.getDockerConfigPath = exports.createDefaultDockerConfig = void 0;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const config_files_1 = require("../../../shared/config/config-files");
|
|
7
|
+
const CONFIG_FILENAME = 'docker.json';
|
|
8
|
+
const LEGACY_DEPLOY_FILENAME = 'deploy.json';
|
|
9
|
+
const LEGACY_ROOT_CONFIG = '.indraq-config.json';
|
|
10
|
+
const isEnvironmentConfig = (value) => {
|
|
11
|
+
if (!value || typeof value !== 'object')
|
|
12
|
+
return false;
|
|
13
|
+
const candidate = value;
|
|
14
|
+
return (typeof candidate.name === 'string' &&
|
|
15
|
+
typeof candidate.imageName === 'string' &&
|
|
16
|
+
typeof candidate.dockerfilePath === 'string');
|
|
17
|
+
};
|
|
18
|
+
const isDockerConfig = (value) => {
|
|
19
|
+
if (!value || typeof value !== 'object')
|
|
20
|
+
return false;
|
|
21
|
+
const candidate = value;
|
|
22
|
+
return (candidate.schemaVersion === 1 &&
|
|
23
|
+
!!candidate.github &&
|
|
24
|
+
(candidate.github.ownerType === 'personal' || candidate.github.ownerType === 'organization') &&
|
|
25
|
+
typeof candidate.github.owner === 'string' &&
|
|
26
|
+
!!candidate.environments &&
|
|
27
|
+
isEnvironmentConfig(candidate.environments.dev) &&
|
|
28
|
+
isEnvironmentConfig(candidate.environments.prod));
|
|
29
|
+
};
|
|
30
|
+
const isLegacyDeployConfigV2 = (value) => {
|
|
31
|
+
if (!value || typeof value !== 'object')
|
|
32
|
+
return false;
|
|
33
|
+
const candidate = value;
|
|
34
|
+
return (candidate.schemaVersion === 2 &&
|
|
35
|
+
!!candidate.github &&
|
|
36
|
+
(candidate.github.ownerType === 'personal' || candidate.github.ownerType === 'organization') &&
|
|
37
|
+
typeof candidate.github.owner === 'string' &&
|
|
38
|
+
!!candidate.environments &&
|
|
39
|
+
isEnvironmentConfig(candidate.environments.dev) &&
|
|
40
|
+
isEnvironmentConfig(candidate.environments.prod));
|
|
41
|
+
};
|
|
42
|
+
const isLegacyDeployConfigV1 = (value) => {
|
|
43
|
+
if (!value || typeof value !== 'object')
|
|
44
|
+
return false;
|
|
45
|
+
const candidate = value;
|
|
46
|
+
return (candidate.schemaVersion === 1 &&
|
|
47
|
+
!!candidate.github &&
|
|
48
|
+
(candidate.github.ownerType === 'personal' || candidate.github.ownerType === 'organization') &&
|
|
49
|
+
typeof candidate.github.owner === 'string' &&
|
|
50
|
+
!!candidate.environments &&
|
|
51
|
+
isEnvironmentConfig(candidate.environments.dev) &&
|
|
52
|
+
isEnvironmentConfig(candidate.environments.prod));
|
|
53
|
+
};
|
|
54
|
+
const isLegacyRootEnvironment = (value) => {
|
|
55
|
+
if (!value || typeof value !== 'object')
|
|
56
|
+
return false;
|
|
57
|
+
const candidate = value;
|
|
58
|
+
return (typeof candidate.name === 'string' &&
|
|
59
|
+
typeof candidate.image_name === 'string' &&
|
|
60
|
+
(candidate.dockerfile_path === undefined || typeof candidate.dockerfile_path === 'string'));
|
|
61
|
+
};
|
|
62
|
+
const isLegacyRootConfig = (value) => {
|
|
63
|
+
if (!value || typeof value !== 'object')
|
|
64
|
+
return false;
|
|
65
|
+
const candidate = value;
|
|
66
|
+
return (typeof candidate.github_organization === 'string' &&
|
|
67
|
+
!!candidate.environments &&
|
|
68
|
+
isLegacyRootEnvironment(candidate.environments.dev) &&
|
|
69
|
+
isLegacyRootEnvironment(candidate.environments.prod));
|
|
70
|
+
};
|
|
71
|
+
const createDefaultDockerConfig = () => ({
|
|
72
|
+
schemaVersion: 1,
|
|
73
|
+
github: {
|
|
74
|
+
ownerType: 'personal',
|
|
75
|
+
owner: ''
|
|
76
|
+
},
|
|
77
|
+
environments: {
|
|
78
|
+
dev: {
|
|
79
|
+
name: 'Development',
|
|
80
|
+
imageName: '',
|
|
81
|
+
dockerfilePath: 'Dockerfile'
|
|
82
|
+
},
|
|
83
|
+
prod: {
|
|
84
|
+
name: 'Production',
|
|
85
|
+
imageName: '',
|
|
86
|
+
dockerfilePath: 'Dockerfile'
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
exports.createDefaultDockerConfig = createDefaultDockerConfig;
|
|
91
|
+
const getDockerConfigPath = () => (0, config_files_1.getIndraqConfigPath)(CONFIG_FILENAME);
|
|
92
|
+
exports.getDockerConfigPath = getDockerConfigPath;
|
|
93
|
+
const migrateLegacyDeployConfig = () => {
|
|
94
|
+
const legacyPath = (0, config_files_1.getIndraqConfigPath)(LEGACY_DEPLOY_FILENAME);
|
|
95
|
+
if ((0, node_fs_1.existsSync)(legacyPath)) {
|
|
96
|
+
try {
|
|
97
|
+
const parsed = JSON.parse((0, node_fs_1.readFileSync)(legacyPath, 'utf8'));
|
|
98
|
+
if (isLegacyDeployConfigV2(parsed)) {
|
|
99
|
+
// Jenkins migration is handled centrally by shared/config/jenkins-config.ts.
|
|
100
|
+
const migrated = {
|
|
101
|
+
schemaVersion: 1,
|
|
102
|
+
github: parsed.github,
|
|
103
|
+
environments: parsed.environments
|
|
104
|
+
};
|
|
105
|
+
(0, exports.saveDockerConfig)(migrated);
|
|
106
|
+
return migrated;
|
|
107
|
+
}
|
|
108
|
+
if (isLegacyDeployConfigV1(parsed)) {
|
|
109
|
+
const migrated = {
|
|
110
|
+
schemaVersion: 1,
|
|
111
|
+
github: parsed.github,
|
|
112
|
+
environments: parsed.environments
|
|
113
|
+
};
|
|
114
|
+
(0, exports.saveDockerConfig)(migrated);
|
|
115
|
+
return migrated;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// Try the older root-level format next.
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const rootLegacyPath = (0, node_path_1.join)(process.cwd(), LEGACY_ROOT_CONFIG);
|
|
123
|
+
if (!(0, node_fs_1.existsSync)(rootLegacyPath))
|
|
124
|
+
return null;
|
|
125
|
+
try {
|
|
126
|
+
const parsed = JSON.parse((0, node_fs_1.readFileSync)(rootLegacyPath, 'utf8'));
|
|
127
|
+
if (!isLegacyRootConfig(parsed))
|
|
128
|
+
return null;
|
|
129
|
+
const migrated = {
|
|
130
|
+
schemaVersion: 1,
|
|
131
|
+
github: {
|
|
132
|
+
ownerType: 'personal',
|
|
133
|
+
owner: parsed.github_organization
|
|
134
|
+
},
|
|
135
|
+
environments: {
|
|
136
|
+
dev: {
|
|
137
|
+
name: parsed.environments.dev.name,
|
|
138
|
+
imageName: parsed.environments.dev.image_name,
|
|
139
|
+
dockerfilePath: parsed.environments.dev.dockerfile_path || 'Dockerfile'
|
|
140
|
+
},
|
|
141
|
+
prod: {
|
|
142
|
+
name: parsed.environments.prod.name,
|
|
143
|
+
imageName: parsed.environments.prod.image_name,
|
|
144
|
+
dockerfilePath: parsed.environments.prod.dockerfile_path || 'Dockerfile'
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
(0, exports.saveDockerConfig)(migrated);
|
|
149
|
+
return migrated;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
const getDockerConfig = () => {
|
|
156
|
+
const path = (0, exports.getDockerConfigPath)();
|
|
157
|
+
if ((0, node_fs_1.existsSync)(path)) {
|
|
158
|
+
try {
|
|
159
|
+
const parsed = JSON.parse((0, node_fs_1.readFileSync)(path, 'utf8'));
|
|
160
|
+
if (!isDockerConfig(parsed))
|
|
161
|
+
throw new Error('invalid structure');
|
|
162
|
+
return parsed;
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
const message = error instanceof Error ? error.message : 'unknown error';
|
|
166
|
+
throw new Error(`Unable to read ${path}: ${message}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return migrateLegacyDeployConfig();
|
|
170
|
+
};
|
|
171
|
+
exports.getDockerConfig = getDockerConfig;
|
|
172
|
+
const saveDockerConfig = (config) => {
|
|
173
|
+
(0, config_files_1.ensureIndraqConfigDirectory)();
|
|
174
|
+
(0, node_fs_1.writeFileSync)((0, exports.getDockerConfigPath)(), `${JSON.stringify(config, null, 2)}\n`, 'utf8');
|
|
175
|
+
if ((0, config_files_1.isIndraqConfigIgnoredByGit)(CONFIG_FILENAME)) {
|
|
176
|
+
process.stderr.write('⚠ .indraq/docker.json is ignored by Git. Remove the .indraq ignore rule if you want Docker/GHCR settings to survive clones.\n');
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
exports.saveDockerConfig = saveDockerConfig;
|
|
180
|
+
const ensureDockerConfig = () => {
|
|
181
|
+
const config = (0, exports.getDockerConfig)();
|
|
182
|
+
if (!config)
|
|
183
|
+
throw new Error('Docker configuration not found. Run `indraq configure` first.');
|
|
184
|
+
return config;
|
|
185
|
+
};
|
|
186
|
+
exports.ensureDockerConfig = ensureDockerConfig;
|
|
187
|
+
//# sourceMappingURL=docker-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-config.js","sourceRoot":"","sources":["../../../../src/modules/deploy/config/docker-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/deploy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/deploy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;AAwB1D,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,KAAG,IAqBvD,CAAC"}
|
|
@@ -3,51 +3,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerDeployModule = void 0;
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const build_command_1 = require("./commands/build.command");
|
|
6
|
-
const configure_command_1 = require("
|
|
6
|
+
const configure_command_1 = require("../configure/configure.command");
|
|
7
7
|
const parseEnvironment = (value) => {
|
|
8
|
-
if (value === 'dev' || value === 'development')
|
|
8
|
+
if (value === 'dev' || value === 'development')
|
|
9
9
|
return 'dev';
|
|
10
|
-
|
|
11
|
-
if (value === 'prod' || value === 'production') {
|
|
10
|
+
if (value === 'prod' || value === 'production')
|
|
12
11
|
return 'prod';
|
|
13
|
-
}
|
|
14
12
|
throw new commander_1.InvalidArgumentError('Environment must be dev/development or prod/production.');
|
|
15
13
|
};
|
|
16
|
-
const runConfigure = async () => {
|
|
17
|
-
await (0, configure_command_1.configure)();
|
|
18
|
-
};
|
|
19
14
|
const runBuild = async (environment) => {
|
|
20
15
|
await (0, build_command_1.build)({ env: environment });
|
|
21
16
|
};
|
|
22
17
|
const addDeploymentShortcut = (program, name, description, environment) => {
|
|
23
|
-
program
|
|
24
|
-
.command(name)
|
|
25
|
-
.description(description)
|
|
26
|
-
.action(async () => {
|
|
27
|
-
await runBuild(environment);
|
|
28
|
-
});
|
|
18
|
+
program.command(name).description(description).action(async () => runBuild(environment));
|
|
29
19
|
};
|
|
30
20
|
const registerDeployModule = (program) => {
|
|
31
|
-
// Structured command surface retained for discoverability and automation.
|
|
32
21
|
const deploy = program
|
|
33
22
|
.command('deploy')
|
|
34
|
-
.description('Build Docker images, push them to GHCR, and run Jenkins pipelines.');
|
|
23
|
+
.description('Build Docker images, push them to GHCR, and run Jenkins deployment pipelines.');
|
|
35
24
|
deploy
|
|
36
25
|
.command('configure')
|
|
37
|
-
.description('
|
|
38
|
-
.action(
|
|
26
|
+
.description('Open the main IndraQ configuration home.')
|
|
27
|
+
.action(async () => (0, configure_command_1.configure)());
|
|
39
28
|
deploy
|
|
40
29
|
.command('build')
|
|
41
30
|
.description('Build and push a configured Docker image.')
|
|
42
31
|
.requiredOption('-e, --env <environment>', 'Environment: dev/development or prod/production', parseEnvironment)
|
|
43
|
-
.action(async (options) =>
|
|
44
|
-
|
|
45
|
-
});
|
|
46
|
-
// Short, user-facing aliases.
|
|
47
|
-
program
|
|
48
|
-
.command('deploy:configure')
|
|
49
|
-
.description('Alias for `indraq configure`.')
|
|
50
|
-
.action(runConfigure);
|
|
32
|
+
.action(async (options) => runBuild(options.env));
|
|
33
|
+
program.command('deploy:configure').description('Alias for `indraq configure`.').action(async () => (0, configure_command_1.configure)());
|
|
51
34
|
addDeploymentShortcut(program, 'deploy:dev', 'Build, push, and deploy the development image.', 'dev');
|
|
52
35
|
addDeploymentShortcut(program, 'deploy:development', 'Alias for `indraq deploy:dev`.', 'dev');
|
|
53
36
|
addDeploymentShortcut(program, 'deploy:prod', 'Build, push, and deploy the production image.', 'prod');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/deploy/index.ts"],"names":[],"mappings":";;;AAAA,yCAA0D;AAC1D,4DAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/deploy/index.ts"],"names":[],"mappings":";;;AAAA,yCAA0D;AAC1D,4DAAiD;AACjD,sEAA2D;AAG3D,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAyB,EAAE;IAChE,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IAC9D,MAAM,IAAI,gCAAoB,CAAC,yDAAyD,CAAC,CAAC;AAC5F,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAkC,EAAiB,EAAE;IAC3E,MAAM,IAAA,qBAAK,EAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,OAAgB,EAChB,IAAY,EACZ,WAAmB,EACnB,WAAkC,EAC5B,EAAE;IACR,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAQ,EAAE;IAC7D,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+EAA+E,CAAC,CAAC;IAEhG,MAAM;SACH,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,IAAA,6BAAS,GAAE,CAAC,CAAC;IAEnC,MAAM;SACH,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2CAA2C,CAAC;SACxD,cAAc,CAAC,yBAAyB,EAAE,iDAAiD,EAAE,gBAAgB,CAAC;SAC9G,MAAM,CAAC,KAAK,EAAE,OAAuC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAEpF,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,IAAA,6BAAS,GAAE,CAAC,CAAC;IACjH,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,gDAAgD,EAAE,KAAK,CAAC,CAAC;IACtG,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,KAAK,CAAC,CAAC;IAC9F,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,+CAA+C,EAAE,MAAM,CAAC,CAAC;IACvG,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,CAAC,CAAC;AACjG,CAAC,CAAC;AArBW,QAAA,oBAAoB,wBAqB/B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type MobileBuildOutput, type MobileBuildProfile, type MobileEnvironmentName } from '../config/mobile-config';
|
|
2
|
+
export interface MobileBuildOptions {
|
|
3
|
+
env: MobileEnvironmentName;
|
|
4
|
+
output?: MobileBuildOutput;
|
|
5
|
+
profile?: MobileBuildProfile;
|
|
6
|
+
verbose?: boolean;
|
|
7
|
+
dryRun?: boolean;
|
|
8
|
+
yes?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const buildMobile: (options: MobileBuildOptions) => Promise<void>;
|
|
11
|
+
//# sourceMappingURL=build-mobile.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-mobile.command.d.ts","sourceRoot":"","sources":["../../../../src/modules/mobile/commands/build-mobile.command.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AA0BjC,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,qBAAqB,CAAC;IAC3B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAcD,eAAO,MAAM,WAAW,GAAU,SAAS,kBAAkB,KAAG,OAAO,CAAC,IAAI,CAkL3E,CAAC"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.buildMobile = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
9
|
+
const node_fs_1 = require("node:fs");
|
|
10
|
+
const mobile_config_1 = require("../config/mobile-config");
|
|
11
|
+
const configure_mobile_command_1 = require("./configure-mobile.command");
|
|
12
|
+
const jenkins_config_1 = require("../../../shared/config/jenkins-config");
|
|
13
|
+
const jenkins_service_1 = require("../../../shared/jenkins/jenkins.service");
|
|
14
|
+
const project_service_1 = require("../services/project.service");
|
|
15
|
+
const source_bundle_service_1 = require("../services/source-bundle.service");
|
|
16
|
+
const jenkins_mobile_service_1 = require("../services/jenkins-mobile.service");
|
|
17
|
+
const version_sync_service_1 = require("../services/version-sync.service");
|
|
18
|
+
const envLabel = (env) => env === 'dev' ? 'Development' : env === 'staging' ? 'Staging' : 'Production';
|
|
19
|
+
const formatBytes = (bytes) => {
|
|
20
|
+
if (bytes < 1024)
|
|
21
|
+
return `${bytes} B`;
|
|
22
|
+
const kb = bytes / 1024;
|
|
23
|
+
if (kb < 1024)
|
|
24
|
+
return `${kb.toFixed(1)} KB`;
|
|
25
|
+
return `${(kb / 1024).toFixed(1)} MB`;
|
|
26
|
+
};
|
|
27
|
+
const buildMobile = async (options) => {
|
|
28
|
+
const env = options.env;
|
|
29
|
+
console.log(chalk_1.default.blue.bold(`\n📱 IndraQ Mobile Build — ${envLabel(env)}\n`));
|
|
30
|
+
const mobile = await (0, configure_mobile_command_1.ensureMobileConfigForEnvironment)(env);
|
|
31
|
+
if (!mobile.projectType)
|
|
32
|
+
throw new Error('Mobile project type is not configured.');
|
|
33
|
+
if (!mobile.appName)
|
|
34
|
+
throw new Error('Mobile app name is not configured.');
|
|
35
|
+
const savedEnv = mobile.environments[env];
|
|
36
|
+
const output = options.output ?? savedEnv.output;
|
|
37
|
+
const profile = options.profile ?? savedEnv.profile;
|
|
38
|
+
if (!output || !profile)
|
|
39
|
+
throw new Error(`Mobile ${envLabel(env)} defaults are incomplete.`);
|
|
40
|
+
(0, mobile_config_1.assertValidMobileCombination)(mobile.projectType, env, output);
|
|
41
|
+
const appVersion = mobile.versioning.version;
|
|
42
|
+
const appVersionCode = mobile.versioning.versionCode;
|
|
43
|
+
if (mobile.versioning.autoIncrementVersionCode && appVersionCode >= mobile_config_1.MAX_ANDROID_VERSION_CODE) {
|
|
44
|
+
throw new Error(`Android versionCode is already ${mobile_config_1.MAX_ANDROID_VERSION_CODE}, so it cannot auto-increment after this build. Update versionCode or disable auto-increment in \`indraq configure\` → Mobile App → Version & versionCode.`);
|
|
45
|
+
}
|
|
46
|
+
console.log(chalk_1.default.blue.bold('🔎 Step 1: Validate project root\n'));
|
|
47
|
+
const project = (0, project_service_1.validateMobileProjectRoot)(mobile.projectType);
|
|
48
|
+
if (mobile.projectType === 'expo' && output === 'development-client') {
|
|
49
|
+
(0, project_service_1.assertExpoDevelopmentClientInstalled)(project.root);
|
|
50
|
+
}
|
|
51
|
+
console.log(chalk_1.default.green(`✓ Project root: ${project.root}`));
|
|
52
|
+
console.log(chalk_1.default.green(`✓ Project type: ${mobile.projectType === 'expo' ? 'Expo' : 'React Native CLI'}`));
|
|
53
|
+
const envFile = (0, source_bundle_service_1.getRootEnvFile)(project.root);
|
|
54
|
+
const needsEnv = output !== 'development-client';
|
|
55
|
+
if (needsEnv && !envFile) {
|
|
56
|
+
throw new Error(`This build requires a root .env file, but none was found at:\n${project.root}\\.env\n\nCreate .env in the mobile project root and retry.`);
|
|
57
|
+
}
|
|
58
|
+
if (envFile)
|
|
59
|
+
console.log(chalk_1.default.green('✓ Root .env found (values will not be printed).'));
|
|
60
|
+
else
|
|
61
|
+
console.log(chalk_1.default.gray('ℹ This Development Client build does not require .env.'));
|
|
62
|
+
console.log(chalk_1.default.blue.bold('\n⚙️ Step 2: Validate Jenkins\n'));
|
|
63
|
+
const jenkinsConnections = (0, jenkins_config_1.getJenkinsConnectionsConfig)();
|
|
64
|
+
const jenkinsEndpoint = jenkinsConnections.environments.prod;
|
|
65
|
+
const jenkins = (0, jenkins_config_1.getResolvedJenkinsConnection)('prod');
|
|
66
|
+
if (!jenkinsEndpoint) {
|
|
67
|
+
throw new Error('Production Jenkins URL is not configured. All mobile Development/Staging/Production builds run on Production Jenkins. Run `indraq configure` → Jenkins → Production.');
|
|
68
|
+
}
|
|
69
|
+
if (!jenkins) {
|
|
70
|
+
throw new Error('Production Jenkins credentials are not configured on this computer. Run `indraq configure` → Jenkins → Production. Jenkins login credentials are intentionally local-only.');
|
|
71
|
+
}
|
|
72
|
+
(0, jenkins_service_1.assertJavaAvailable)();
|
|
73
|
+
if (!(0, node_fs_1.existsSync)((0, jenkins_service_1.getJenkinsCliJarPath)(jenkins.serverId)) || !(0, node_fs_1.existsSync)((0, jenkins_service_1.getJenkinsAuthFilePath)(jenkins.serverId))) {
|
|
74
|
+
throw new Error('Production Jenkins CLI/auth cache is incomplete on this computer. Run `indraq configure` → Jenkins → Production.');
|
|
75
|
+
}
|
|
76
|
+
const authCheck = (0, jenkins_service_1.validateJenkinsAuthentication)(jenkins);
|
|
77
|
+
if (authCheck.connectionMode !== jenkins.connectionMode) {
|
|
78
|
+
jenkinsConnections.environments.prod = { url: jenkins.url, connectionMode: authCheck.connectionMode };
|
|
79
|
+
jenkins.connectionMode = authCheck.connectionMode;
|
|
80
|
+
(0, jenkins_config_1.saveJenkinsConnectionsConfig)(jenkinsConnections);
|
|
81
|
+
}
|
|
82
|
+
await (0, jenkins_service_1.assertJenkinsJobExists)(jenkins, mobile_config_1.MOBILE_JENKINS_JOB_NAME, 'mobile pipeline/job');
|
|
83
|
+
console.log(chalk_1.default.green(`✓ Production Jenkins: ${jenkins.url}`));
|
|
84
|
+
console.log(chalk_1.default.green(`✓ Mobile job: ${mobile_config_1.MOBILE_JENKINS_JOB_NAME}`));
|
|
85
|
+
console.log(chalk_1.default.blue.bold('\n📋 Build plan\n'));
|
|
86
|
+
console.log(` App: ${mobile.appName}`);
|
|
87
|
+
console.log(` Version: ${appVersion}`);
|
|
88
|
+
console.log(` versionCode: ${appVersionCode}`);
|
|
89
|
+
console.log(` Environment: ${envLabel(env)}`);
|
|
90
|
+
console.log(` Output: ${(0, configure_mobile_command_1.outputLabel)(output)}`);
|
|
91
|
+
console.log(` Profile: ${(0, configure_mobile_command_1.profileLabel)(profile)}`);
|
|
92
|
+
console.log(` Source: current VS Code/project directory`);
|
|
93
|
+
console.log(` .env: ${envFile ? 'root .env (uploaded separately)' : 'not required'}`);
|
|
94
|
+
console.log(` Jenkins: Production (${jenkins.url})`);
|
|
95
|
+
console.log(` Jenkins job: ${mobile_config_1.MOBILE_JENKINS_JOB_NAME}`);
|
|
96
|
+
console.log(` Git revision: ${project.gitCommit ?? 'local/no Git metadata'}${project.gitDirty ? ' + uncommitted changes' : ''}`);
|
|
97
|
+
console.log(chalk_1.default.gray(' Artifact: <App>_<Version>_<versionCode>_<YYYY-MM-DD>_<HHmm>.apk/.aab (Asia/Kolkata)'));
|
|
98
|
+
if (!mobile.versioning.autoIncrementVersion || !mobile.versioning.autoIncrementVersionCode) {
|
|
99
|
+
console.log('');
|
|
100
|
+
if (!mobile.versioning.autoIncrementVersion) {
|
|
101
|
+
console.log(chalk_1.default.yellow(`⚠ Version auto-increment is OFF. Version ${appVersion} will be reused on the next build unless you change it manually.`));
|
|
102
|
+
}
|
|
103
|
+
if (!mobile.versioning.autoIncrementVersionCode) {
|
|
104
|
+
console.log(chalk_1.default.yellow(`⚠ versionCode auto-increment is OFF. versionCode ${appVersionCode} will be reused on the next build unless you change it manually.`));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (options.dryRun) {
|
|
108
|
+
console.log(chalk_1.default.yellow('\n✓ Dry run complete. No source was uploaded, no Jenkins build was started, and version counters were not changed.\n'));
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (!options.yes) {
|
|
112
|
+
const { proceed } = await inquirer_1.default.prompt([
|
|
113
|
+
{
|
|
114
|
+
type: 'confirm',
|
|
115
|
+
name: 'proceed',
|
|
116
|
+
message: 'Create a source snapshot and start this Jenkins mobile build?',
|
|
117
|
+
default: true
|
|
118
|
+
}
|
|
119
|
+
]);
|
|
120
|
+
if (!proceed) {
|
|
121
|
+
console.log(chalk_1.default.yellow('\nBuild cancelled. Version counters were not changed.\n'));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
console.log(chalk_1.default.blue.bold('\n🔢 Step 3: Apply Android version locally\n'));
|
|
126
|
+
const localSync = (0, version_sync_service_1.syncMobileVersionIntoProject)(project.root, mobile.projectType, appVersion, appVersionCode);
|
|
127
|
+
for (const file of localSync.updatedFiles)
|
|
128
|
+
console.log(chalk_1.default.green(`✓ ${file}: ${appVersion} / ${appVersionCode}`));
|
|
129
|
+
for (const warning of localSync.warnings)
|
|
130
|
+
console.log(chalk_1.default.yellow(`⚠ ${warning}`));
|
|
131
|
+
console.log(chalk_1.default.blue.bold('\n📦 Step 4: Create source snapshot\n'));
|
|
132
|
+
const bundle = await (0, source_bundle_service_1.createSourceBundle)(project.root, mobile.projectId);
|
|
133
|
+
console.log(chalk_1.default.green(`✓ Source bundle created: ${formatBytes(bundle.sizeBytes)}`));
|
|
134
|
+
console.log(chalk_1.default.gray(` SHA-256: ${bundle.sha256}`));
|
|
135
|
+
console.log(chalk_1.default.gray(' Source archive excludes: .git, .indraq, node_modules, build outputs, caches and editor files.'));
|
|
136
|
+
console.log(chalk_1.default.gray(` .env: ${envFile ? 'excluded from the source archive and uploaded separately to Jenkins' : 'not included / not required'}.`));
|
|
137
|
+
try {
|
|
138
|
+
console.log(chalk_1.default.blue.bold('\n🚀 Step 5: Upload source and run Jenkins\n'));
|
|
139
|
+
console.log(chalk_1.default.gray('Live Jenkins console output will appear below.\n'));
|
|
140
|
+
const result = await (0, jenkins_mobile_service_1.triggerMobileJenkinsBuild)(jenkins, mobile_config_1.MOBILE_JENKINS_JOB_NAME, {
|
|
141
|
+
projectId: mobile.projectId,
|
|
142
|
+
appName: mobile.appName,
|
|
143
|
+
appVersion,
|
|
144
|
+
appVersionCode,
|
|
145
|
+
projectType: mobile.projectType,
|
|
146
|
+
environment: env,
|
|
147
|
+
output,
|
|
148
|
+
profile,
|
|
149
|
+
sourceBundlePath: bundle.archivePath,
|
|
150
|
+
sourceSha256: bundle.sha256,
|
|
151
|
+
envFilePath: envFile,
|
|
152
|
+
...(project.gitCommit ? { gitCommit: project.gitCommit } : {}),
|
|
153
|
+
gitDirty: project.gitDirty || localSync.updatedFiles.length > 0,
|
|
154
|
+
verbose: Boolean(options.verbose)
|
|
155
|
+
});
|
|
156
|
+
console.log(chalk_1.default.green.bold(`\n🎉 Mobile build #${result.buildNumber} completed successfully.\n`));
|
|
157
|
+
console.log(chalk_1.default.blue('Build summary:'));
|
|
158
|
+
console.log(chalk_1.default.gray(` Jenkins: ${result.buildUrl}`));
|
|
159
|
+
console.log(chalk_1.default.gray(` Result: ${result.result}`));
|
|
160
|
+
if (result.artifacts.length) {
|
|
161
|
+
console.log(chalk_1.default.blue('\nArtifacts:'));
|
|
162
|
+
for (const artifact of result.artifacts) {
|
|
163
|
+
console.log(chalk_1.default.gray(` ${artifact.fileName}`));
|
|
164
|
+
console.log(chalk_1.default.gray(` ${artifact.url}`));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const advanced = (0, mobile_config_1.advanceMobileVersionAfterSuccessfulBuild)(appVersion, appVersionCode);
|
|
168
|
+
if (advanced.skippedBecauseChanged) {
|
|
169
|
+
console.log(chalk_1.default.yellow('\n⚠ Mobile version settings changed while Jenkins was building, so IndraQ did not overwrite those newer values.'));
|
|
170
|
+
}
|
|
171
|
+
else if (advanced.versionAdvanced || advanced.versionCodeAdvanced) {
|
|
172
|
+
const nextSync = (0, version_sync_service_1.syncMobileVersionIntoProject)(project.root, mobile.projectType, advanced.config.versioning.version, advanced.config.versioning.versionCode);
|
|
173
|
+
console.log(chalk_1.default.blue('\nNext mobile build version:'));
|
|
174
|
+
console.log(chalk_1.default.gray(` Version: ${advanced.config.versioning.version}${advanced.versionAdvanced ? ' (auto-incremented)' : ' (unchanged)'}`));
|
|
175
|
+
console.log(chalk_1.default.gray(` versionCode: ${advanced.config.versioning.versionCode}${advanced.versionCodeAdvanced ? ' (auto-incremented)' : ' (unchanged)'}`));
|
|
176
|
+
for (const file of nextSync.updatedFiles)
|
|
177
|
+
console.log(chalk_1.default.gray(` Synced: ${file}`));
|
|
178
|
+
for (const warning of nextSync.warnings)
|
|
179
|
+
console.log(chalk_1.default.yellow(` ⚠ ${warning}`));
|
|
180
|
+
console.log(chalk_1.default.yellow('\n Commit .indraq/mobile.json and the synced app version file(s) so the next version survives for every developer.'));
|
|
181
|
+
}
|
|
182
|
+
console.log('');
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
bundle.cleanup();
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
exports.buildMobile = buildMobile;
|
|
189
|
+
//# sourceMappingURL=build-mobile.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-mobile.command.js","sourceRoot":"","sources":["../../../../src/modules/mobile/commands/build-mobile.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type MobileBuildOutput, type MobileBuildProfile, type MobileConfig, type MobileEnvironmentName } from '../config/mobile-config';
|
|
2
|
+
export declare const outputLabel: (output: MobileBuildOutput | null) => string;
|
|
3
|
+
export declare const profileLabel: (profile: MobileBuildProfile | null) => string;
|
|
4
|
+
export declare const configureMobileEnvironment: (config: MobileConfig, env: MobileEnvironmentName) => Promise<void>;
|
|
5
|
+
export declare const printMobileConfiguration: (config: MobileConfig) => void;
|
|
6
|
+
export declare const ensureMobileConfigForEnvironment: (env: MobileEnvironmentName) => Promise<MobileConfig>;
|
|
7
|
+
export declare const configureMobile: () => Promise<void>;
|
|
8
|
+
//# sourceMappingURL=configure-mobile.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-mobile.command.d.ts","sourceRoot":"","sources":["../../../../src/modules/mobile/commands/configure-mobile.command.ts"],"names":[],"mappings":"AAIA,OAAO,EAQL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAG3B,MAAM,yBAAyB,CAAC;AAsBjC,eAAO,MAAM,WAAW,GAAI,QAAQ,iBAAiB,GAAG,IAAI,KAAG,MAQ9D,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,SAAS,kBAAkB,GAAG,IAAI,KAAG,MAOjE,CAAC;AAkNF,eAAO,MAAM,0BAA0B,GACrC,QAAQ,YAAY,EACpB,KAAK,qBAAqB,KACzB,OAAO,CAAC,IAAI,CAgDd,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,YAAY,KAAG,IAgB/D,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,KAAK,qBAAqB,KACzB,OAAO,CAAC,YAAY,CAmBtB,CAAC;AAEF,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,IAAI,CA4BpD,CAAC"}
|