indraq_cli 1.5.1 ā 1.5.7
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 +129 -23
- package/dist/cli/create-program.d.ts.map +1 -1
- package/dist/cli/create-program.js +41 -1
- package/dist/cli/create-program.js.map +1 -1
- package/dist/cli/help-content.d.ts +5 -0
- package/dist/cli/help-content.d.ts.map +1 -0
- package/dist/cli/help-content.js +223 -0
- package/dist/cli/help-content.js.map +1 -0
- package/dist/modules/deploy/commands/build.command.d.ts.map +1 -1
- package/dist/modules/deploy/commands/build.command.js +6 -15
- package/dist/modules/deploy/commands/build.command.js.map +1 -1
- package/dist/modules/deploy/services/docker.service.d.ts +0 -2
- package/dist/modules/deploy/services/docker.service.d.ts.map +1 -1
- package/dist/modules/deploy/services/docker.service.js +3 -18
- package/dist/modules/deploy/services/docker.service.js.map +1 -1
- package/dist/modules/mobile/commands/build-mobile.command.d.ts.map +1 -1
- package/dist/modules/mobile/commands/build-mobile.command.js +2 -1
- package/dist/modules/mobile/commands/build-mobile.command.js.map +1 -1
- package/dist/modules/mobile/services/jenkins-mobile.service.d.ts.map +1 -1
- package/dist/modules/mobile/services/jenkins-mobile.service.js +217 -48
- package/dist/modules/mobile/services/jenkins-mobile.service.js.map +1 -1
- package/package.json +1 -1
- package/templates/jenkins/Jenkinsfile-Mobile-App +138 -12
|
@@ -9,7 +9,6 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
9
9
|
const node_fs_1 = require("node:fs");
|
|
10
10
|
const docker_config_1 = require("../config/docker-config");
|
|
11
11
|
const jenkins_config_1 = require("../../../shared/config/jenkins-config");
|
|
12
|
-
const github_auth_service_1 = require("../../../shared/github/github-auth.service");
|
|
13
12
|
const docker_service_1 = require("../services/docker.service");
|
|
14
13
|
const jenkins_service_1 = require("../../../shared/jenkins/jenkins.service");
|
|
15
14
|
const TAG_PATTERN = /^[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}$/;
|
|
@@ -53,10 +52,6 @@ const build = async (options) => {
|
|
|
53
52
|
}
|
|
54
53
|
(0, docker_service_1.assertDockerAvailable)();
|
|
55
54
|
(0, jenkins_service_1.assertJavaAvailable)();
|
|
56
|
-
const githubAuth = (0, github_auth_service_1.detectGitHubAuthentication)();
|
|
57
|
-
if (!githubAuth) {
|
|
58
|
-
throw new Error('No authenticated GitHub session was found. Sign in using Git/Git Bash (Git Credential Manager or SSH), or authenticate the optional GitHub CLI.');
|
|
59
|
-
}
|
|
60
55
|
if (!(0, node_fs_1.existsSync)(dockerfilePath)) {
|
|
61
56
|
throw new Error(`Dockerfile not found: ${dockerfilePath}`);
|
|
62
57
|
}
|
|
@@ -67,7 +62,9 @@ const build = async (options) => {
|
|
|
67
62
|
throw new Error('Jenkins credentials are missing. Run `indraq configure` again.');
|
|
68
63
|
}
|
|
69
64
|
console.log(chalk_1.default.blue.bold('š Preflight Checks\n'));
|
|
70
|
-
console.log(chalk_1.default.green(
|
|
65
|
+
console.log(chalk_1.default.green('ā Docker available'));
|
|
66
|
+
console.log(chalk_1.default.green("ā GHCR authentication will use Docker's existing credential store"));
|
|
67
|
+
console.log(chalk_1.default.gray(' IndraQ will not run `docker login` or replace your working GHCR credentials.'));
|
|
71
68
|
console.log(chalk_1.default.gray(`ā Registry owner: ${config.github.owner} (${config.github.ownerType === 'personal' ? 'personal account' : 'organization'})`));
|
|
72
69
|
const authResult = (0, jenkins_service_1.validateJenkinsAuthentication)(jenkins);
|
|
73
70
|
if (authResult.connectionMode !== jenkins.connectionMode) {
|
|
@@ -112,15 +109,9 @@ const build = async (options) => {
|
|
|
112
109
|
console.log(chalk_1.default.gray(`Tags: ${tags.join(', ')}\n`));
|
|
113
110
|
(0, docker_service_1.buildDockerImage)(imageName, tags, dockerfilePath);
|
|
114
111
|
console.log(chalk_1.default.green('\nā Docker image built successfully\n'));
|
|
115
|
-
console.log(chalk_1.default.blue.bold('š Step 3:
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
console.log(chalk_1.default.green('\nā GHCR login completed using the detected GitHub credential\n'));
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
console.log(chalk_1.default.yellow('ā GitHub SSH authentication is valid, but GHCR does not accept SSH keys. Using any GHCR credentials already stored by Docker.'));
|
|
122
|
-
console.log(chalk_1.default.gray(' If the push fails, run `docker login ghcr.io` once and retry.\n'));
|
|
123
|
-
}
|
|
112
|
+
console.log(chalk_1.default.blue.bold('š Step 3: Using Existing GHCR Authentication\n'));
|
|
113
|
+
console.log(chalk_1.default.green('ā Using the GHCR credentials already stored by Docker'));
|
|
114
|
+
console.log(chalk_1.default.gray(' Git/GitHub credentials are not reused for GHCR and Docker login state is left untouched.\n'));
|
|
124
115
|
console.log(chalk_1.default.blue.bold('š¤ Step 4: Pushing Image to GHCR\n'));
|
|
125
116
|
for (const tag of tags) {
|
|
126
117
|
const imageWithTag = `${imageName}:${tag}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.command.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/build.command.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,kDAA0B;AAC1B,qCAAqC;AACrC,2DAIiC;AACjC,0EAAgJ;AAChJ
|
|
1
|
+
{"version":3,"file":"build.command.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/build.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import type { GitHubAuthState } from '../../../shared/github/github-auth.service';
|
|
2
1
|
export declare const assertDockerAvailable: () => void;
|
|
3
2
|
export declare const buildDockerImage: (imageName: string, tags: string[], dockerfilePath: string) => void;
|
|
4
|
-
export declare const authenticateGhcr: (auth: GitHubAuthState) => boolean;
|
|
5
3
|
export declare const pushDockerImage: (imageWithTag: string) => void;
|
|
6
4
|
export declare const getDockerImageDigest: (imageWithTag: string) => string;
|
|
7
5
|
//# sourceMappingURL=docker.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/services/docker.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"docker.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/services/docker.service.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,QAAO,IAMxC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,WAAW,MAAM,EACjB,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,KACrB,IAYF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,cAAc,MAAM,KAAG,IAStD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM,KAAG,MAgB3D,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDockerImageDigest = exports.pushDockerImage = exports.
|
|
3
|
+
exports.getDockerImageDigest = exports.pushDockerImage = exports.buildDockerImage = exports.assertDockerAvailable = void 0;
|
|
4
4
|
const node_child_process_1 = require("node:child_process");
|
|
5
5
|
const assertDockerAvailable = () => {
|
|
6
6
|
try {
|
|
@@ -25,28 +25,13 @@ const buildDockerImage = (imageName, tags, dockerfilePath) => {
|
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
exports.buildDockerImage = buildDockerImage;
|
|
28
|
-
const authenticateGhcr = (auth) => {
|
|
29
|
-
if (!auth.username || !auth.token) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
try {
|
|
33
|
-
(0, node_child_process_1.execFileSync)('docker', ['login', 'ghcr.io', '-u', auth.username, '--password-stdin'], {
|
|
34
|
-
input: `${auth.token}\n`,
|
|
35
|
-
stdio: ['pipe', 'inherit', 'inherit']
|
|
36
|
-
});
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
throw new Error('GitHub authentication was found, but GHCR rejected the credential. Make sure it has package write access, or run `docker login ghcr.io` once.');
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
exports.authenticateGhcr = authenticateGhcr;
|
|
44
28
|
const pushDockerImage = (imageWithTag) => {
|
|
45
29
|
try {
|
|
46
30
|
(0, node_child_process_1.execFileSync)('docker', ['push', imageWithTag], { stdio: 'inherit' });
|
|
47
31
|
}
|
|
48
32
|
catch {
|
|
49
|
-
throw new Error(`Failed to push ${imageWithTag}.
|
|
33
|
+
throw new Error(`Failed to push ${imageWithTag}. IndraQ preserved Docker's existing GHCR login and did not run docker login. ` +
|
|
34
|
+
'If a manual `docker push` of the same image succeeds, report this as an IndraQ CLI bug. Otherwise verify the Docker GHCR credential has package write access.');
|
|
50
35
|
}
|
|
51
36
|
};
|
|
52
37
|
exports.pushDockerImage = pushDockerImage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.service.js","sourceRoot":"","sources":["../../../../src/modules/deploy/services/docker.service.ts"],"names":[],"mappings":";;;AAAA,2DAAkD;
|
|
1
|
+
{"version":3,"file":"docker.service.js","sourceRoot":"","sources":["../../../../src/modules/deploy/services/docker.service.ts"],"names":[],"mappings":";;;AAAA,2DAAkD;AAE3C,MAAM,qBAAqB,GAAG,GAAS,EAAE;IAC9C,IAAI,CAAC;QACH,IAAA,iCAAY,EAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;AACH,CAAC,CAAC;AANW,QAAA,qBAAqB,yBAMhC;AAEK,MAAM,gBAAgB,GAAG,CAC9B,SAAiB,EACjB,IAAc,EACd,cAAsB,EAChB,EAAE;IACR,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACvD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,CAAC;QACH,IAAA,iCAAY,EAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,gBAAgB,oBAgB3B;AAEK,MAAM,eAAe,GAAG,CAAC,YAAoB,EAAQ,EAAE;IAC5D,IAAI,CAAC;QACH,IAAA,iCAAY,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,kBAAkB,YAAY,gFAAgF;YAC9G,+JAA+J,CAChK,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAEK,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAU,EAAE;IACnE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,iCAAY,EACzB,QAAQ,EACR,CAAC,OAAO,EAAE,SAAS,EAAE,mCAAmC,EAAE,YAAY,CAAC,EACvE;YACE,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CACF,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,oBAAoB,wBAgB/B"}
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -132,7 +132,8 @@ const buildMobile = async (options) => {
|
|
|
132
132
|
const bundle = await (0, source_bundle_service_1.createSourceBundle)(project.root, mobile.projectId);
|
|
133
133
|
console.log(chalk_1.default.green(`ā Source bundle created: ${formatBytes(bundle.sizeBytes)}`));
|
|
134
134
|
console.log(chalk_1.default.gray(` SHA-256: ${bundle.sha256}`));
|
|
135
|
-
console.log(chalk_1.default.gray('
|
|
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'}.`));
|
|
136
137
|
try {
|
|
137
138
|
console.log(chalk_1.default.blue.bold('\nš Step 5: Upload source and run Jenkins\n'));
|
|
138
139
|
console.log(chalk_1.default.gray('Live Jenkins console output will appear below.\n'));
|
|
@@ -1 +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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
|
|
1
|
+
{"version":3,"file":"build-mobile.command.js","sourceRoot":"","sources":["../../../../src/modules/mobile/commands/build-mobile.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jenkins-mobile.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/mobile/services/jenkins-mobile.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAMnF,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,qBAAqB,CAAC;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"jenkins-mobile.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/mobile/services/jenkins-mobile.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAMnF,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,qBAAqB,CAAC;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAuSD,eAAO,MAAM,yBAAyB,GACpC,QAAQ,qBAAqB,EAC7B,SAAS,MAAM,EACf,SAAS,yBAAyB,KACjC,OAAO,CAAC,wBAAwB,CA8HlC,CAAC"}
|
|
@@ -28,25 +28,67 @@ const fetchJson = async (url, headers, timeout = 15_000) => {
|
|
|
28
28
|
}
|
|
29
29
|
return await response.json();
|
|
30
30
|
};
|
|
31
|
-
const
|
|
31
|
+
const extractSetCookieHeaders = (headers) => {
|
|
32
|
+
const extended = headers;
|
|
33
|
+
if (typeof extended.getSetCookie === 'function') {
|
|
34
|
+
return extended.getSetCookie();
|
|
35
|
+
}
|
|
36
|
+
const combined = headers.get('set-cookie');
|
|
37
|
+
if (!combined)
|
|
38
|
+
return [];
|
|
39
|
+
// Fallback for runtimes without Headers.getSetCookie(). Jenkins' session
|
|
40
|
+
// cookies are simple name=value pairs; split only where a new cookie starts.
|
|
41
|
+
return combined.split(/,(?=\s*[^=;,\s]+=)/g);
|
|
42
|
+
};
|
|
43
|
+
const createCookieHeader = (setCookieHeaders) => {
|
|
44
|
+
const cookies = setCookieHeaders
|
|
45
|
+
.map((value) => value.split(';', 1)[0]?.trim() ?? '')
|
|
46
|
+
.filter((value) => /^[^=;\s]+=.*/.test(value));
|
|
47
|
+
return cookies.length > 0 ? cookies.join('; ') : null;
|
|
48
|
+
};
|
|
49
|
+
const getCrumbSession = async (config, authHeaders) => {
|
|
32
50
|
try {
|
|
33
51
|
const response = await fetch(`${(0, jenkins_service_1.normalizeJenkinsUrl)(config.url)}/crumbIssuer/api/json`, {
|
|
34
52
|
headers: authHeaders,
|
|
35
53
|
signal: AbortSignal.timeout(10_000)
|
|
36
54
|
});
|
|
55
|
+
// API-token authentication is exempt from Jenkins CSRF protection, and
|
|
56
|
+
// some controllers disable the crumb issuer entirely.
|
|
37
57
|
if (response.status === 404)
|
|
38
|
-
return {};
|
|
58
|
+
return { crumbHeaders: {}, cookieHeader: null };
|
|
39
59
|
if (!response.ok)
|
|
40
|
-
return {};
|
|
60
|
+
return { crumbHeaders: {}, cookieHeader: null };
|
|
41
61
|
const data = await response.json();
|
|
42
|
-
|
|
62
|
+
const crumbHeaders = data.crumbRequestField && data.crumb
|
|
63
|
+
? { [data.crumbRequestField]: data.crumb }
|
|
64
|
+
: {};
|
|
65
|
+
// Jenkins crumbs are tied to the web session that issued them. Password-
|
|
66
|
+
// authenticated scripted clients must send this same session cookie with
|
|
67
|
+
// the subsequent POST. API-token clients do not need the crumb, but
|
|
68
|
+
// sending the cookie is harmless.
|
|
69
|
+
const cookieHeader = createCookieHeader(extractSetCookieHeaders(response.headers));
|
|
70
|
+
return { crumbHeaders, cookieHeader };
|
|
43
71
|
}
|
|
44
72
|
catch {
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
return {};
|
|
73
|
+
// The build POST will still work when an API token is used because Jenkins
|
|
74
|
+
// exempts API-token-authenticated requests from CSRF crumbs.
|
|
75
|
+
return { crumbHeaders: {}, cookieHeader: null };
|
|
48
76
|
}
|
|
49
77
|
};
|
|
78
|
+
const cleanJenkinsResponseBody = (body) => body
|
|
79
|
+
.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi, ' ')
|
|
80
|
+
.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, ' ')
|
|
81
|
+
.replace(/<[^>]+>/g, ' ')
|
|
82
|
+
.replace(/ /gi, ' ')
|
|
83
|
+
.replace(/"/gi, '"')
|
|
84
|
+
.replace(/'|'/gi, "'")
|
|
85
|
+
.replace(/</gi, '<')
|
|
86
|
+
.replace(/>/gi, '>')
|
|
87
|
+
.replace(/&/gi, '&')
|
|
88
|
+
.replace(/\s+/g, ' ')
|
|
89
|
+
.trim()
|
|
90
|
+
.slice(0, 1000);
|
|
91
|
+
const isCsrfRejection = (status, body) => status === 403 && /(?:crumb|csrf|cross[ -]?site request forgery)/i.test(body);
|
|
50
92
|
const parseQueueLocation = (location, baseUrl) => {
|
|
51
93
|
if (!location) {
|
|
52
94
|
throw new Error('Jenkins accepted the build request but did not return a queue Location header.');
|
|
@@ -59,6 +101,7 @@ const parseQueueLocation = (location, baseUrl) => {
|
|
|
59
101
|
};
|
|
60
102
|
const waitForBuildStart = async (queueUrl, authHeaders) => {
|
|
61
103
|
const deadline = Date.now() + 10 * 60_000;
|
|
104
|
+
let lastQueueReason = '';
|
|
62
105
|
while (Date.now() < deadline) {
|
|
63
106
|
const data = await fetchJson(`${queueUrl}/api/json`, authHeaders);
|
|
64
107
|
if (data.cancelled)
|
|
@@ -67,85 +110,209 @@ const waitForBuildStart = async (queueUrl, authHeaders) => {
|
|
|
67
110
|
const url = data.executable?.url;
|
|
68
111
|
if (typeof number === 'number' && url)
|
|
69
112
|
return { number, url: url.replace(/\/+$/, '') };
|
|
70
|
-
|
|
71
|
-
|
|
113
|
+
// Do not use carriage-return progress updates here. Raw \r cursor movement
|
|
114
|
+
// makes Jenkins output appear diagonally/right-shifted in Windows/VS Code.
|
|
115
|
+
const reason = data.why?.trim() ?? '';
|
|
116
|
+
if (reason && reason !== lastQueueReason) {
|
|
117
|
+
console.log(`Jenkins queue: ${reason.slice(0, 160)}`);
|
|
118
|
+
lastQueueReason = reason;
|
|
119
|
+
}
|
|
72
120
|
await sleep(1500);
|
|
73
121
|
}
|
|
74
122
|
throw new Error('Timed out waiting for Jenkins to start the mobile build.');
|
|
75
123
|
};
|
|
124
|
+
const normalizeConsoleText = (value) => {
|
|
125
|
+
const withoutOsc = value.replace(/\u001B\][^\u0007]*(?:\u0007|\u001B\\)/g, '');
|
|
126
|
+
const withoutAnsi = withoutOsc.replace(/\u001B\[[0-?]*[ -/]*[@-~]/g, '');
|
|
127
|
+
const normalized = withoutAnsi
|
|
128
|
+
.replace(/\r\n/g, '\n')
|
|
129
|
+
.replace(/\r/g, '\n')
|
|
130
|
+
.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001A\u007F]/g, '')
|
|
131
|
+
.replace(/\t/g, ' ')
|
|
132
|
+
.replace(/\n{4,}/g, '\n\n\n');
|
|
133
|
+
return process.platform === 'win32' ? normalized.replace(/\n/g, '\r\n') : normalized;
|
|
134
|
+
};
|
|
135
|
+
const decodeHtmlEntities = (value) => value
|
|
136
|
+
.replace(/&#x([0-9a-f]+);/gi, (_match, hex) => String.fromCodePoint(Number.parseInt(hex, 16)))
|
|
137
|
+
.replace(/&#(\d+);/g, (_match, decimal) => String.fromCodePoint(Number.parseInt(decimal, 10)))
|
|
138
|
+
.replace(/ /gi, ' ')
|
|
139
|
+
.replace(/"/gi, '"')
|
|
140
|
+
.replace(/'|'/gi, "'")
|
|
141
|
+
.replace(/</gi, '<')
|
|
142
|
+
.replace(/>/gi, '>')
|
|
143
|
+
.replace(/&/gi, '&');
|
|
144
|
+
const sanitizeJenkinsProgressiveHtml = (value) => {
|
|
145
|
+
// Jenkins' own web console consumes progressiveHtml, not progressiveText.
|
|
146
|
+
// progressiveHtml renders/removes ConsoleNote metadata server-side, so the
|
|
147
|
+
// terminal receives the same human-readable text that Jenkins displays in
|
|
148
|
+
// the browser instead of hidden `ha:////...` annotation payloads.
|
|
149
|
+
const text = decodeHtmlEntities(value
|
|
150
|
+
.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi, '')
|
|
151
|
+
.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, '')
|
|
152
|
+
.replace(/<br\s*\/?\s*>/gi, '\n')
|
|
153
|
+
.replace(/<\/(?:div|p|li|tr|h[1-6])\s*>/gi, '\n')
|
|
154
|
+
.replace(/<[^>]+>/g, ''));
|
|
155
|
+
return normalizeConsoleText(text);
|
|
156
|
+
};
|
|
157
|
+
const sanitizeJenkinsProgressiveTextFallback = (value) => {
|
|
158
|
+
// progressiveText exposes Jenkins ConsoleNote binary annotations. Remove the
|
|
159
|
+
// complete hidden-note envelope *before* stripping ANSI sequences. The extra
|
|
160
|
+
// ha://// fallback handles controllers/plugins that already removed the ANSI
|
|
161
|
+
// pre/postamble but left the encoded annotation body behind.
|
|
162
|
+
const withoutConsoleNotes = value
|
|
163
|
+
.replace(/\u001B\[8mha:[\s\S]*?\u001B\[0m/g, '')
|
|
164
|
+
.replace(/ha:\/\/\/\/[A-Za-z0-9+/]+={1,2}/g, '');
|
|
165
|
+
return normalizeConsoleText(withoutConsoleNotes);
|
|
166
|
+
};
|
|
167
|
+
const appendRecentLines = (buffer, text) => {
|
|
168
|
+
const lines = text
|
|
169
|
+
.replace(/\r\n/g, '\n')
|
|
170
|
+
.split('\n')
|
|
171
|
+
.map((line) => line.trimEnd())
|
|
172
|
+
.filter((line) => line.trim().length > 0);
|
|
173
|
+
buffer.push(...lines);
|
|
174
|
+
if (buffer.length > 250)
|
|
175
|
+
buffer.splice(0, buffer.length - 250);
|
|
176
|
+
};
|
|
76
177
|
const streamBuild = async (buildUrl, authHeaders) => {
|
|
77
178
|
let start = 0;
|
|
179
|
+
const recentLines = [];
|
|
78
180
|
while (true) {
|
|
79
|
-
|
|
181
|
+
// This is the same endpoint used by the classic Jenkins web console. It
|
|
182
|
+
// converts Jenkins ConsoleNote metadata to HTML, which lets us remove the
|
|
183
|
+
// markup while keeping the readable username/stage/log text.
|
|
184
|
+
let logResponse = await fetch(`${buildUrl}/logText/progressiveHtml?start=${start}`, {
|
|
80
185
|
headers: authHeaders,
|
|
81
186
|
signal: AbortSignal.timeout(30_000)
|
|
82
187
|
});
|
|
188
|
+
let htmlMode = true;
|
|
189
|
+
// Older/custom controllers may not expose progressiveHtml. Fall back to
|
|
190
|
+
// progressiveText, but explicitly remove Jenkins ConsoleNote annotations.
|
|
191
|
+
if (!logResponse.ok && (logResponse.status === 404 || logResponse.status === 405)) {
|
|
192
|
+
htmlMode = false;
|
|
193
|
+
logResponse = await fetch(`${buildUrl}/logText/progressiveText?start=${start}`, {
|
|
194
|
+
headers: authHeaders,
|
|
195
|
+
signal: AbortSignal.timeout(30_000)
|
|
196
|
+
});
|
|
197
|
+
}
|
|
83
198
|
if (!logResponse.ok) {
|
|
84
199
|
throw new Error(`Unable to read Jenkins console log (HTTP ${logResponse.status}).`);
|
|
85
200
|
}
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
201
|
+
const logPayload = await logResponse.text();
|
|
202
|
+
const displayText = htmlMode
|
|
203
|
+
? sanitizeJenkinsProgressiveHtml(logPayload)
|
|
204
|
+
: sanitizeJenkinsProgressiveTextFallback(logPayload);
|
|
205
|
+
if (displayText) {
|
|
206
|
+
process.stdout.write(displayText);
|
|
207
|
+
appendRecentLines(recentLines, displayText);
|
|
208
|
+
}
|
|
89
209
|
const next = Number(logResponse.headers.get('x-text-size') ?? start);
|
|
90
210
|
if (Number.isFinite(next))
|
|
91
211
|
start = next;
|
|
92
212
|
const state = await fetchJson(`${buildUrl}/api/json?tree=building,result,url,artifacts%5BfileName,relativePath%5D`, authHeaders);
|
|
93
213
|
const moreData = (logResponse.headers.get('x-more-data') ?? '').toLowerCase() === 'true';
|
|
94
214
|
if (!state.building && state.result && !moreData)
|
|
95
|
-
return state;
|
|
215
|
+
return { ...state, recentLines };
|
|
96
216
|
await sleep(1000);
|
|
97
217
|
}
|
|
98
218
|
};
|
|
219
|
+
const getFailureSummary = (lines) => {
|
|
220
|
+
const useful = lines.filter((line) => {
|
|
221
|
+
const value = line.trim();
|
|
222
|
+
if (!value)
|
|
223
|
+
return false;
|
|
224
|
+
if (/^\[Pipeline\]/.test(value))
|
|
225
|
+
return false;
|
|
226
|
+
if (/^Stage ".*" skipped due to earlier failure/.test(value))
|
|
227
|
+
return false;
|
|
228
|
+
return /(?:error|exception|failed|failure|timeout|timed out|not found|cannot|could not|exit code|what went wrong|problem occurred)/i.test(value);
|
|
229
|
+
});
|
|
230
|
+
const selected = useful.length > 0 ? useful.slice(-12) : lines.slice(-18);
|
|
231
|
+
return selected;
|
|
232
|
+
};
|
|
99
233
|
const triggerMobileJenkinsBuild = async (config, jobName, request) => {
|
|
100
234
|
const credentials = (0, jenkins_service_1.readJenkinsCredentials)(config.serverId);
|
|
101
235
|
const authHeaders = createAuthHeaders(credentials.username, credentials.secret);
|
|
102
236
|
const jobBaseUrl = (0, jenkins_service_1.getJenkinsJobBaseUrl)(config.url, jobName);
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
237
|
+
const createBuildForm = async () => {
|
|
238
|
+
const form = new FormData();
|
|
239
|
+
const sourceBlob = await (0, node_fs_1.openAsBlob)(request.sourceBundlePath, { type: 'application/gzip' });
|
|
240
|
+
form.append('SOURCE_BUNDLE', sourceBlob, 'indraq-source.tar.gz');
|
|
241
|
+
if (request.envFilePath) {
|
|
242
|
+
const envBlob = await (0, node_fs_1.openAsBlob)(request.envFilePath, { type: 'text/plain' });
|
|
243
|
+
form.append('ENV_FILE', envBlob, '.env');
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
form.append('ENV_FILE', new Blob([], { type: 'text/plain' }), '.env');
|
|
247
|
+
}
|
|
248
|
+
form.append('PROJECT_ID', request.projectId);
|
|
249
|
+
form.append('APP_NAME', request.appName);
|
|
250
|
+
form.append('APP_VERSION', request.appVersion);
|
|
251
|
+
form.append('APP_VERSION_CODE', String(request.appVersionCode));
|
|
252
|
+
form.append('SOURCE_SHA256', request.sourceSha256);
|
|
253
|
+
form.append('PROJECT_TYPE', toJenkinsProjectType(request.projectType));
|
|
254
|
+
form.append('BUILD_ENVIRONMENT', toJenkinsEnvironment(request.environment));
|
|
255
|
+
form.append('BUILD_OUTPUT', toJenkinsOutput(request.output));
|
|
256
|
+
form.append('BUILD_PROFILE', toJenkinsProfile(request.profile));
|
|
257
|
+
form.append('SOURCE_REVISION', request.gitCommit ?? 'local');
|
|
258
|
+
form.append('SOURCE_DIRTY', request.gitDirty ? 'true' : 'false');
|
|
259
|
+
form.append('VERBOSE_BUILD', request.verbose ? 'true' : 'false');
|
|
260
|
+
return form;
|
|
261
|
+
};
|
|
262
|
+
const submitBuild = async (session) => {
|
|
263
|
+
const headers = {
|
|
264
|
+
...authHeaders,
|
|
265
|
+
...session.crumbHeaders
|
|
266
|
+
};
|
|
267
|
+
if (session.cookieHeader)
|
|
268
|
+
headers.Cookie = session.cookieHeader;
|
|
269
|
+
return await fetch(`${jobBaseUrl}/buildWithParameters`, {
|
|
129
270
|
method: 'POST',
|
|
130
|
-
headers
|
|
131
|
-
body:
|
|
271
|
+
headers,
|
|
272
|
+
body: await createBuildForm(),
|
|
132
273
|
redirect: 'manual',
|
|
133
274
|
signal: AbortSignal.timeout(120_000)
|
|
134
275
|
});
|
|
276
|
+
};
|
|
277
|
+
let response;
|
|
278
|
+
let responseBody = '';
|
|
279
|
+
try {
|
|
280
|
+
let crumbSession = await getCrumbSession(config, authHeaders);
|
|
281
|
+
response = await submitBuild(crumbSession);
|
|
282
|
+
if (response.status === 403) {
|
|
283
|
+
responseBody = await response.text();
|
|
284
|
+
// A Jenkins crumb is valid only in the web session that created it. If
|
|
285
|
+
// the controller reports a CSRF rejection, refresh both crumb and cookie
|
|
286
|
+
// once and retry with a fresh multipart body.
|
|
287
|
+
if (isCsrfRejection(response.status, responseBody)) {
|
|
288
|
+
console.log('Jenkins requested a fresh CSRF session. Retrying once...');
|
|
289
|
+
crumbSession = await getCrumbSession(config, authHeaders);
|
|
290
|
+
response = await submitBuild(crumbSession);
|
|
291
|
+
responseBody = response.status >= 400 ? await response.text() : '';
|
|
292
|
+
}
|
|
293
|
+
}
|
|
135
294
|
}
|
|
136
295
|
catch (error) {
|
|
137
296
|
const message = error instanceof Error ? error.message : 'unknown network error';
|
|
138
297
|
throw new Error(`Unable to upload source and trigger Jenkins: ${message}`);
|
|
139
298
|
}
|
|
140
299
|
if (response.status < 200 || response.status >= 400) {
|
|
141
|
-
|
|
300
|
+
if (!responseBody)
|
|
301
|
+
responseBody = await response.text();
|
|
302
|
+
const details = cleanJenkinsResponseBody(responseBody);
|
|
142
303
|
if (response.status === 400) {
|
|
143
|
-
throw new Error(`Jenkins rejected the mobile build parameters (HTTP 400). Make sure this job uses the IndraQ v1.5 mobile Jenkinsfile and the Jenkins "File Parameter" plugin is installed.${
|
|
304
|
+
throw new Error(`Jenkins rejected the mobile build parameters (HTTP 400). Make sure this job uses the IndraQ v1.5 mobile Jenkinsfile and the Jenkins "File Parameter" plugin is installed.${details ? `\nJenkins: ${details}` : ''}`);
|
|
305
|
+
}
|
|
306
|
+
if (response.status === 401) {
|
|
307
|
+
throw new Error(`Jenkins rejected the HTTP build authentication (HTTP 401). Reconfigure the Production Jenkins credential.${details ? `\nJenkins: ${details}` : ''}`);
|
|
144
308
|
}
|
|
145
|
-
if (response.status ===
|
|
146
|
-
|
|
309
|
+
if (response.status === 403) {
|
|
310
|
+
if (isCsrfRejection(response.status, responseBody)) {
|
|
311
|
+
throw new Error(`Jenkins rejected the CSRF crumb even after refreshing the Jenkins session (HTTP 403).${details ? `\nJenkins: ${details}` : ''}`);
|
|
312
|
+
}
|
|
313
|
+
throw new Error(`Jenkins authenticated successfully but denied starting "${jobName}" (HTTP 403). The Jenkins user needs Job/Read and Job/Build permission for this job.${details ? `\nJenkins: ${details}` : ''}`);
|
|
147
314
|
}
|
|
148
|
-
throw new Error(`Jenkins build request failed (HTTP ${response.status}).${
|
|
315
|
+
throw new Error(`Jenkins build request failed (HTTP ${response.status}).${details ? `\nJenkins: ${details}` : ''}`);
|
|
149
316
|
}
|
|
150
317
|
const queueUrl = parseQueueLocation(response.headers.get('location'), config.url);
|
|
151
318
|
console.log(`Jenkins queue: ${queueUrl}`);
|
|
@@ -162,7 +329,9 @@ const triggerMobileJenkinsBuild = async (config, jobName, request) => {
|
|
|
162
329
|
url: `${started.url}/artifact/${item.relativePath.split('/').map(encodeURIComponent).join('/')}`
|
|
163
330
|
}));
|
|
164
331
|
if (result !== 'SUCCESS') {
|
|
165
|
-
|
|
332
|
+
const summary = getFailureSummary(state.recentLines);
|
|
333
|
+
const details = summary.length > 0 ? `\n\nKey Jenkins error lines:\n${summary.map((line) => ` ${line}`).join('\n')}` : '';
|
|
334
|
+
throw new Error(`Jenkins mobile build #${started.number} finished with ${result}.${details}\n\nJenkins build: ${started.url}`);
|
|
166
335
|
}
|
|
167
336
|
return {
|
|
168
337
|
buildNumber: started.number,
|