indraq_cli 1.5.1 → 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 CHANGED
@@ -18,7 +18,7 @@
18
18
  <img alt="Java 21" src="https://img.shields.io/badge/Java-21%20recommended-ED8B00?logo=openjdk&logoColor=white" />
19
19
  <img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-strict-3178C6?logo=typescript&logoColor=white" />
20
20
  <img alt="License" src="https://img.shields.io/npm/l/indraq_cli" />
21
- <img alt="Version" src="https://img.shields.io/badge/version-1.5.1-264B63" />
21
+ <img alt="Version" src="https://img.shields.io/badge/version-1.5.5-264B63" />
22
22
  </p>
23
23
 
24
24
  > [!IMPORTANT]
@@ -30,7 +30,7 @@
30
30
 
31
31
  1. [What is IndraQ CLI?](#what-is-indraq-cli)
32
32
  2. [Explain it like I am new](#explain-it-like-i-am-new)
33
- 3. [What changed in v1.5.1?](#what-changed-in-v151)
33
+ 3. [What changed in v1.5.5?](#what-changed-in-v155)
34
34
  4. [Requirements](#requirements)
35
35
  5. [Install Java 21](#install-java-21)
36
36
  6. [Install IndraQ CLI](#install-indraq-cli)
@@ -145,16 +145,30 @@ You do **not** need to give Jenkins a Git URL, Git branch, app subdirectory, or
145
145
 
146
146
  ---
147
147
 
148
- ## What changed in v1.5.1?
148
+ ## What changed in v1.5.5?
149
149
 
150
- v1.5.1 keeps the Android versioning introduced in v1.5 and hardens the Jenkins/Git workflow around it.
150
+ v1.5.5 keeps the Android versioning and Jenkins/Git workflow from v1.5.x and hardens Android builds created from Windows source snapshots.
151
151
 
152
152
  This patch fixes the mobile Jenkinsfile Groovy escaping error, makes the mobile Jenkins job name deterministic, makes project configuration Git-shareable, keeps Jenkins login credentials machine-local, and makes Docker deployments send the exact manual deployment parameters expected by the Jenkins pipeline.
153
153
 
154
- ### Jenkins/Git behavior hardened in v1.5.1
154
+
155
+ ### Jenkins-console-quality logs and server Gradle reuse in v1.5.5
156
+
157
+ - The terminal log streamer now reads Jenkins **`logText/progressiveHtml`**, the same progressive endpoint used by the classic Jenkins web console. Jenkins therefore removes/renders hidden `ConsoleNote` annotations before the CLI displays the text, so internal `ha:////...` payloads no longer pollute VS Code output.
158
+ - HTML markup is converted back to plain terminal text while preserving usernames, timestamps, Pipeline lines, errors, and normal line spacing. `progressiveText` remains only as a compatibility fallback with explicit ConsoleNote filtering.
159
+ - Failed mobile builds now end with a short **Key Jenkins error lines** summary plus the direct Jenkins build URL.
160
+ - The mobile Jenkinsfile still normalizes Windows CRLF in `android/gradlew`, but v1.5.5 also restores the Jenkins server's shared Gradle cache at `$HOME/.gradle` instead of creating an empty per-project Gradle cache.
161
+ - Gradle execution prefers the exact cached project-wrapper distribution. If no exact wrapper distribution is cached, an installed Jenkins-server Gradle from the same major version can be reused. The project wrapper remains the final fallback.
162
+ - If a wrapper download is genuinely necessary, the temporary Jenkins copy of `gradle-wrapper.properties` gets `networkTimeout=120000` (120 seconds) instead of failing at Gradle's short default timeout.
163
+ - `FULL_RESET` no longer deletes Jenkins' shared Gradle cache. It clears project-local npm/Expo caches and generated Android state only.
164
+ - Jenkins queue updates are printed as normal lines instead of carriage-return cursor updates.
165
+
166
+ ### Jenkins/Git behavior hardened in v1.5.x
155
167
 
156
168
  - Mobile always targets the Jenkins job **`Mobile app Cli build`**. The job name is no longer configurable per project.
157
169
  - The mobile Jenkinsfile no longer contains the Groovy-invalid escaped-dot expression that caused `unexpected char: '\'` during pipeline compilation.
170
+ - Mobile Jenkins HTTP uploads now preserve the Jenkins web-session cookie together with the CSRF crumb, fixing HTTP 403 responses when Jenkins is configured with username/password authentication. API-token authentication remains supported.
171
+ - Mobile build output now says explicitly that `.env` is excluded only from the source archive and is uploaded separately to Jenkins.
158
172
  - `.indraq/mobile.json`, `.indraq/docker.json`, and `.indraq/jenkins.json` are intended to be committed to Git.
159
173
  - `.indraq/jenkins.local.json`, Jenkins username/token/password, `.env`, and `jenkins-cli.jar` are machine-local and never meant to be committed.
160
174
  - Docker CLI deployments now start Jenkins with `ACTION=DEPLOY`, `IMAGE_TAG`, optional `IMAGE_DIGEST`, and `DEPLOYMENT_SOURCE=INDRAQ_CLI`.
@@ -253,7 +267,7 @@ Existing `.indraq/mobile.json` files are upgraded automatically. Project type, a
253
267
  | **Jenkins account** | Starts Jenkins jobs | Jenkins username + API token |
254
268
 
255
269
  > [!TIP]
256
- > Node.js **24** is recommended for IndraQ developer machines, but v1.5.1 supports Node.js **22 and newer**.
270
+ > Node.js **24** is recommended for IndraQ developer machines, but v1.5.5 supports Node.js **22 and newer**.
257
271
 
258
272
  ### Jenkins mobile build machine
259
273
 
@@ -267,7 +281,9 @@ The provided mobile Jenkinsfile expects the Jenkins agent to have:
267
281
  - `tar` / `sha256sum`;
268
282
  - Jenkins **File Parameter** plugin;
269
283
  - writable `/opt/mobile-builder`;
270
- - Android SDK at `/opt/android-sdk` unless you edit the Jenkinsfile.
284
+ - Android SDK at `/opt/android-sdk` unless you edit the Jenkinsfile;
285
+ - the Jenkins account should have a writable `$HOME/.gradle` cache (normally `/var/jenkins_home/.gradle`);
286
+ - optionally, a system `gradle` executable may be installed. IndraQ uses it only when its major version matches the project wrapper.
271
287
 
272
288
  ---
273
289
 
@@ -331,7 +347,7 @@ indraq --version
331
347
  Expected for this release:
332
348
 
333
349
  ```text
334
- 1.5.1
350
+ 1.5.3
335
351
  ```
336
352
 
337
353
  Update later:
@@ -598,9 +614,9 @@ Profiles:
598
614
 
599
615
  | Profile | Meaning |
600
616
  |---|---|
601
- | **FAST** | Fresh source snapshot, reuse project-scoped npm/Gradle caches |
617
+ | **FAST** | Fresh source snapshot; reuse project npm cache plus the Jenkins server shared Gradle cache |
602
618
  | **CLEAN** | Clean generated project build state before building |
603
- | **FULL_RESET** | Clear this project's Jenkins build caches before rebuilding |
619
+ | **FULL_RESET** | Clear project npm/Expo/generated Android state while preserving the Jenkins server shared Gradle cache |
604
620
 
605
621
  After saving one environment you return to the Mobile App menu, so you can configure another environment without rerunning the command.
606
622
 
@@ -841,7 +857,7 @@ indraq build mobile:prod --output aab --profile clean --verbose --yes
841
857
 
842
858
  ## Android versioning and artifact names
843
859
 
844
- IndraQ v1.5.1 currently manages **Android** versioning only. iOS version/build-number management is intentionally out of scope for now.
860
+ IndraQ v1.5.5 currently manages **Android** versioning only. iOS version/build-number management is intentionally out of scope for now.
845
861
 
846
862
  ### What value does a build use?
847
863
 
@@ -1072,9 +1088,9 @@ The CLI checks this exact job on Production Jenkins before every mobile build.
1072
1088
 
1073
1089
  ### Live logs
1074
1090
 
1075
- Mobile source upload is triggered through Jenkins HTTP `buildWithParameters`, then IndraQ follows the queue item, discovers the build number, and streams progressive Jenkins console output into VS Code.
1091
+ Mobile source upload is triggered through Jenkins HTTP `buildWithParameters`, then IndraQ follows the queue item, discovers the build number, and streams Jenkins **`logText/progressiveHtml`** into VS Code. This is the same progressive console endpoint used by the classic Jenkins browser console, so Jenkins' hidden `ConsoleNote` metadata is rendered/removed before IndraQ converts the remaining HTML to readable terminal text.
1076
1092
 
1077
- If Jenkins fails, the CLI exits with failure and leaves the Jenkins error visible in the terminal.
1093
+ If Jenkins fails, the CLI exits with failure, prints a short **Key Jenkins error lines** summary, and prints the direct Jenkins build URL. The complete live output remains above it.
1078
1094
 
1079
1095
  ---
1080
1096
 
@@ -1094,7 +1110,7 @@ Project-local configuration:
1094
1110
  The generated `.indraq/.gitignore` ignores **only machine-local files** such as `jenkins.local.json`. Shared project configuration is intentionally visible to Git.
1095
1111
 
1096
1112
  > [!IMPORTANT]
1097
- > Older IndraQ setups often ignored the whole `.indraq/` directory. v1.5.1 automatically appends safe re-include rules to the project root `.gitignore` so `jenkins.json`, `docker.json`, and `mobile.json` can be committed while `jenkins.local.json` remains ignored. Run `git status` after configuration and commit the three shared JSON files.
1113
+ > Older IndraQ setups often ignored the whole `.indraq/` directory. v1.5.5 automatically appends safe re-include rules to the project root `.gitignore` so `jenkins.json`, `docker.json`, and `mobile.json` can be committed while `jenkins.local.json` remains ignored. Run `git status` after configuration and commit the three shared JSON files.
1098
1114
 
1099
1115
  ### `jenkins.json`
1100
1116
 
@@ -1177,10 +1193,10 @@ indraq --version
1177
1193
  Expected for this release:
1178
1194
 
1179
1195
  ```text
1180
- 1.5.1
1196
+ 1.5.3
1181
1197
  ```
1182
1198
 
1183
- v1.5.1 automatically migrates older `.indraq/mobile.json` and Jenkins config layouts. Existing mobile environment/version settings are preserved. Older Jenkins username/server binding fields are split so only non-secret server metadata remains in tracked `jenkins.json`; the current machine binding is written to ignored `jenkins.local.json`.
1199
+ v1.5.5 automatically migrates older `.indraq/mobile.json` and Jenkins config layouts. Existing mobile environment/version settings are preserved. Older Jenkins username/server binding fields are split so only non-secret server metadata remains in tracked `jenkins.json`; the current machine binding is written to ignored `jenkins.local.json`.
1184
1200
 
1185
1201
  For projects coming from pre-versioning releases, Android version settings initialize as:
1186
1202
 
@@ -1325,7 +1341,7 @@ Do not paste it into Jenkins.
1325
1341
  Make sure:
1326
1342
 
1327
1343
  1. Jenkins **File Parameter** plugin is installed;
1328
- 2. the job uses `templates/jenkins/Jenkinsfile-Mobile-App` from v1.5.1;
1344
+ 2. the job uses `templates/jenkins/Jenkinsfile-Mobile-App` from v1.5.5;
1329
1345
  3. Jenkins has registered the parameters;
1330
1346
  4. the Jenkins job is named exactly `Mobile app Cli build`.
1331
1347
 
@@ -1372,6 +1388,39 @@ npm install -g indraq_cli
1372
1388
 
1373
1389
  ---
1374
1390
 
1391
+
1392
+ ### `./gradlew: cannot execute: required file not found`
1393
+
1394
+ This normally means the mobile source snapshot came from Windows and `android/gradlew` contains CRLF line endings. IndraQ normalizes the wrapper automatically on Jenkins before the build and invokes it through Bash.
1395
+
1396
+ The Jenkins server provides the Android toolchain:
1397
+
1398
+ ```text
1399
+ Java → Jenkins server
1400
+ ANDROID_HOME → /opt/android-sdk
1401
+ Android NDKs → /opt/android-sdk/ndk/*
1402
+ Shared Gradle cache → $HOME/.gradle (normally /var/jenkins_home/.gradle)
1403
+ Preferred Gradle → exact cached wrapper distribution
1404
+ Server fallback → installed Gradle when it is the same major version
1405
+ Final fallback → project wrapper with 120-second download timeout
1406
+ ```
1407
+
1408
+ This restores the shared Gradle-cache behavior used by the earlier Git-checkout mobile pipeline. `FULL_RESET` deliberately preserves the server's `$HOME/.gradle` cache.
1409
+
1410
+ ### Gradle wrapper tries to download and times out
1411
+
1412
+ v1.5.5 first checks the Jenkins server's shared wrapper cache. If the requested distribution is already cached, the wrapper uses it without internet access. If there is no exact cached wrapper but Jenkins has a system Gradle from the same major version, IndraQ reuses the server Gradle. Only when neither option exists does the project wrapper attempt a download, with `networkTimeout=120000` applied to the temporary Jenkins copy of `gradle-wrapper.properties`.
1413
+
1414
+ If the Jenkins machine has neither a compatible installed Gradle nor the requested wrapper cached and it has no outbound access to Gradle distributions, install/cache the required Gradle version on that Jenkins machine once.
1415
+
1416
+ ### Jenkins logs contain `ha:////...`, look diagonal, or are unreadable in VS Code
1417
+
1418
+ The `ha:////...` strings are Jenkins `ConsoleNote` annotations embedded in raw `progressiveText`. The Jenkins browser UI renders/hides those annotations. v1.5.5 now consumes Jenkins `logText/progressiveHtml`—the same progressive endpoint used by the classic web console—and converts the rendered output back to plain terminal text.
1419
+
1420
+ The CLI also normalizes line endings and strips terminal control sequences. Upgrade to v1.5.5 or newer if you see raw `ha:////...` payloads or staircase/right-shifted output.
1421
+
1422
+ ---
1423
+
1375
1424
  ## Frequently asked questions
1376
1425
 
1377
1426
  ### Do I install IndraQ CLI in every project?
@@ -1537,7 +1586,7 @@ indraq diagnostics ...
1537
1586
  - [ ] command is run from package.json root
1538
1587
  - [ ] Production Jenkins connection configured (`indraq configure → Jenkins → Production`)
1539
1588
  - [ ] Jenkins File Parameter plugin installed
1540
- - [ ] Jenkins job uses the v1.5.1 mobile Jenkinsfile
1589
+ - [ ] Jenkins job uses the v1.5.5 mobile Jenkinsfile
1541
1590
  - [ ] Mobile project type configured
1542
1591
  - [ ] Jenkins job is named exactly `Mobile app Cli build` and exists on Production Jenkins
1543
1592
  - [ ] Development / Staging / Production defaults configured as needed
@@ -1558,3 +1607,10 @@ MIT License. See [`LICENSE`](LICENSE).
1558
1607
  <p align="center">
1559
1608
  <strong>Built and maintained by IndraQ Innovations.</strong>
1560
1609
  </p>
1610
+
1611
+
1612
+ ### Jenkins mobile upload returns HTTP 403
1613
+
1614
+ IndraQ CLI v1.5.5 preserves the Jenkins web-session cookie together with the CSRF crumb when a Jenkins username/password is used. Jenkins ties crumbs to the session that created them, so both values must travel together. API-token authentication is exempt from the crumb requirement.
1615
+
1616
+ If a mobile build still returns HTTP 403, v1.5.5 prints Jenkins' own response message. A permission error means the configured Jenkins user needs **Job/Read** and **Job/Build** on the `Mobile app Cli build` job. A CSRF error means the Jenkins controller or reverse proxy is rejecting the crumb/session and the printed Jenkins message should be used for diagnosis.
@@ -1 +1 @@
1
- {"version":3,"file":"create-program.d.ts","sourceRoot":"","sources":["../../src/cli/create-program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,QAAO,OAsBhC,CAAC"}
1
+ {"version":3,"file":"create-program.d.ts","sourceRoot":"","sources":["../../src/cli/create-program.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,aAAa,QAAO,OAsBhC,CAAC"}
@@ -1,17 +1,35 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.createProgram = void 0;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = __importDefault(require("node:path"));
4
9
  const commander_1 = require("commander");
5
10
  const deploy_1 = require("../modules/deploy");
6
11
  const mobile_1 = require("../modules/mobile");
7
12
  const configure_command_1 = require("../modules/configure/configure.command");
8
13
  const doctor_command_1 = require("./doctor.command");
14
+ const readCliVersion = () => {
15
+ try {
16
+ const packageJsonPath = node_path_1.default.resolve(__dirname, '../../package.json');
17
+ const packageJson = JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, 'utf8'));
18
+ if (typeof packageJson.version === 'string' && packageJson.version.trim()) {
19
+ return packageJson.version.trim();
20
+ }
21
+ }
22
+ catch {
23
+ // Fall through to a safe value if package metadata is unexpectedly unavailable.
24
+ }
25
+ return '0.0.0';
26
+ };
9
27
  const createProgram = () => {
10
28
  const program = new commander_1.Command();
11
29
  program
12
30
  .name('indraq')
13
31
  .description('IndraQ internal engineering CLI.')
14
- .version('1.5.1');
32
+ .version(readCliVersion());
15
33
  program
16
34
  .command('doctor')
17
35
  .description('Diagnose Node and command-resolution problems.')
@@ -1 +1 @@
1
- {"version":3,"file":"create-program.js","sourceRoot":"","sources":["../../src/cli/create-program.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,8CAAyD;AACzD,8CAAyD;AACzD,8EAAmE;AACnE,qDAA0C;AAEnC,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,kCAAkC,CAAC;SAC/C,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,uBAAM,GAAE,CAAC,CAAC;IAE1B,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,kFAAkF,CAAC;SAC/F,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,IAAA,6BAAS,GAAE,CAAC,CAAC;IAEnC,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAtBW,QAAA,aAAa,iBAsBxB"}
1
+ {"version":3,"file":"create-program.js","sourceRoot":"","sources":["../../src/cli/create-program.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAuC;AACvC,0DAA6B;AAC7B,yCAAoC;AACpC,8CAAyD;AACzD,8CAAyD;AACzD,8EAAmE;AACnE,qDAA0C;AAI1C,MAAM,cAAc,GAAG,GAAW,EAAE;IAClC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAA0B,CAAC;QAE/F,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1E,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gFAAgF;IAClF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,kCAAkC,CAAC;SAC/C,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAE7B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,uBAAM,GAAE,CAAC,CAAC;IAE1B,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,kFAAkF,CAAC;SAC/F,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,IAAA,6BAAS,GAAE,CAAC,CAAC;IAEnC,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAtBW,QAAA,aAAa,iBAsBxB"}
@@ -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,CAiL3E,CAAC"}
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(' Excluded: .git, .indraq, node_modules, build outputs, caches, .env and editor files.'));
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;AAkID,eAAO,MAAM,yBAAyB,GACpC,QAAQ,qBAAqB,EAC7B,SAAS,MAAM,EACf,SAAS,yBAAyB,KACjC,OAAO,CAAC,wBAAwB,CAmFlC,CAAC"}
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 getCrumb = async (config, authHeaders) => {
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
- return data.crumbRequestField && data.crumb ? { [data.crumbRequestField]: data.crumb } : {};
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
- // Jenkins API tokens normally do not require a crumb. The build POST will
46
- // surface a useful error if this controller does require one.
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(/&nbsp;/gi, ' ')
83
+ .replace(/&quot;/gi, '"')
84
+ .replace(/&#39;|&apos;/gi, "'")
85
+ .replace(/&lt;/gi, '<')
86
+ .replace(/&gt;/gi, '>')
87
+ .replace(/&amp;/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
- if (data.why)
71
- process.stdout.write(`\rJenkins queue: ${data.why.slice(0, 120)} `);
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(/&nbsp;/gi, ' ')
139
+ .replace(/&quot;/gi, '"')
140
+ .replace(/&#39;|&apos;/gi, "'")
141
+ .replace(/&lt;/gi, '<')
142
+ .replace(/&gt;/gi, '>')
143
+ .replace(/&amp;/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
- const logResponse = await fetch(`${buildUrl}/logText/progressiveText?start=${start}`, {
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 logText = await logResponse.text();
87
- if (logText)
88
- process.stdout.write(logText);
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 crumbHeaders = await getCrumb(config, authHeaders);
104
- const form = new FormData();
105
- const sourceBlob = await (0, node_fs_1.openAsBlob)(request.sourceBundlePath, { type: 'application/gzip' });
106
- form.append('SOURCE_BUNDLE', sourceBlob, 'indraq-source.tar.gz');
107
- if (request.envFilePath) {
108
- const envBlob = await (0, node_fs_1.openAsBlob)(request.envFilePath, { type: 'text/plain' });
109
- form.append('ENV_FILE', envBlob, '.env');
110
- }
111
- else {
112
- form.append('ENV_FILE', new Blob([], { type: 'text/plain' }), '.env');
113
- }
114
- form.append('PROJECT_ID', request.projectId);
115
- form.append('APP_NAME', request.appName);
116
- form.append('APP_VERSION', request.appVersion);
117
- form.append('APP_VERSION_CODE', String(request.appVersionCode));
118
- form.append('SOURCE_SHA256', request.sourceSha256);
119
- form.append('PROJECT_TYPE', toJenkinsProjectType(request.projectType));
120
- form.append('BUILD_ENVIRONMENT', toJenkinsEnvironment(request.environment));
121
- form.append('BUILD_OUTPUT', toJenkinsOutput(request.output));
122
- form.append('BUILD_PROFILE', toJenkinsProfile(request.profile));
123
- form.append('SOURCE_REVISION', request.gitCommit ?? 'local');
124
- form.append('SOURCE_DIRTY', request.gitDirty ? 'true' : 'false');
125
- form.append('VERBOSE_BUILD', request.verbose ? 'true' : 'false');
126
- let response;
127
- try {
128
- response = await fetch(`${jobBaseUrl}/buildWithParameters`, {
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: { ...authHeaders, ...crumbHeaders },
131
- body: form,
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
- const body = (await response.text()).slice(0, 500);
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.${body ? `\n${body}` : ''}`);
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 === 401 || response.status === 403) {
146
- throw new Error(`Jenkins rejected the mobile build request (HTTP ${response.status}). Check credentials and Build permission.`);
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}).${body ? `\n${body}` : ''}`);
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
- throw new Error(`Jenkins mobile build #${started.number} finished with ${result}. Review the console output above.`);
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,
@@ -1 +1 @@
1
- {"version":3,"file":"jenkins-mobile.service.js","sourceRoot":"","sources":["../../../../src/modules/mobile/services/jenkins-mobile.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jenkins-mobile.service.js","sourceRoot":"","sources":["../../../../src/modules/mobile/services/jenkins-mobile.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "indraq_cli",
3
- "version": "1.5.1",
3
+ "version": "1.5.5",
4
4
  "description": "IndraQ CLI for Docker/GHCR deployments, Jenkins automation, and mobile Android builds",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -71,8 +71,15 @@ pipeline {
71
71
  env.BUILD_LOG_FILE = "${env.BUILD_ARTIFACT_DIR}/build.log"
72
72
  env.BUILD_JSON_FILE = "${env.BUILD_ARTIFACT_DIR}/build.json"
73
73
 
74
- // Project-scoped caches make FULL_RESET safe for other Jenkins jobs.
75
- env.GRADLE_USER_HOME = "${env.APP_ROOT}/.gradle"
74
+ // Reuse the Jenkins machine's shared Gradle cache. The previous
75
+ // Git-based mobile pipeline used the normal Jenkins HOME/.gradle
76
+ // cache, so already-installed wrapper distributions are available
77
+ // without downloading Gradle again for every IndraQ source snapshot.
78
+ def serverHome = env.HOME?.trim() ?: '/var/jenkins_home'
79
+ env.GRADLE_USER_HOME = "${serverHome}/.gradle"
80
+
81
+ // npm / Expo caches remain project-scoped so FULL_RESET cannot
82
+ // destroy caches used by unrelated Jenkins jobs.
76
83
  env.NPM_CONFIG_CACHE = "${env.APP_ROOT}/.npm-cache"
77
84
  env.EXPO_HOME = "${env.APP_ROOT}/.expo-home"
78
85
 
@@ -251,9 +258,15 @@ echo "Cleanup completed."
251
258
  set -Eeuo pipefail
252
259
  exec > >(tee -a "$BUILD_LOG_FILE") 2>&1
253
260
 
254
- echo "FULL_RESET: deleting only this project's Jenkins caches."
255
- rm -rf "$GRADLE_USER_HOME" "$NPM_CONFIG_CACHE" "$EXPO_HOME"
256
- mkdir -p "$GRADLE_USER_HOME" "$NPM_CONFIG_CACHE" "$EXPO_HOME"
261
+ echo "FULL_RESET: clearing project-local npm/Expo caches and generated build state."
262
+ echo "Shared Jenkins Gradle cache is intentionally preserved: $GRADLE_USER_HOME"
263
+ rm -rf "$NPM_CONFIG_CACHE" "$EXPO_HOME"
264
+ mkdir -p "$NPM_CONFIG_CACHE" "$EXPO_HOME"
265
+
266
+ # The uploaded source tree is already fresh, but clear Android-generated state
267
+ # so FULL_RESET remains stronger than CLEAN without deleting the server's
268
+ # shared Gradle distributions/caches.
269
+ rm -rf "$SOURCE_DIR/android/.gradle" "$SOURCE_DIR/android/build" "$SOURCE_DIR/android/app/build"
257
270
  '''
258
271
  }
259
272
  }
@@ -266,12 +279,25 @@ set -Eeuo pipefail
266
279
  exec > >(tee -a "$BUILD_LOG_FILE") 2>&1
267
280
 
268
281
  echo "========== Build Machine =========="
282
+ echo "JAVA:"
269
283
  java -version
284
+ echo "NODE:"
270
285
  node -v
286
+ echo "NPM:"
271
287
  npm -v
272
- sdkmanager --version || true
288
+ echo "ANDROID SDK:"
273
289
  echo "ANDROID_HOME=$ANDROID_HOME"
290
+ echo "ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT"
291
+ echo "GRADLE CACHE:"
274
292
  echo "GRADLE_USER_HOME=$GRADLE_USER_HOME"
293
+ if command -v gradle >/dev/null 2>&1; then
294
+ echo "SYSTEM GRADLE:"
295
+ gradle --version | sed -n '1,8p'
296
+ else
297
+ echo "SYSTEM GRADLE: not in PATH (project wrapper will use the shared Jenkins Gradle cache)."
298
+ fi
299
+ echo "ANDROID CLI:"
300
+ sdkmanager --version || true
275
301
  '''
276
302
  }
277
303
  }
@@ -393,9 +419,109 @@ fi
393
419
  sh '''#!/usr/bin/env bash
394
420
  set -Eeuo pipefail
395
421
  exec > >(tee -a "$BUILD_LOG_FILE") 2>&1
422
+
396
423
  [ -f gradlew ] || { echo "gradlew not found inside android/."; exit 1; }
424
+ [ -f gradle/wrapper/gradle-wrapper.jar ] || { echo "gradle-wrapper.jar not found."; exit 1; }
425
+ [ -f gradle/wrapper/gradle-wrapper.properties ] || { echo "gradle-wrapper.properties not found."; exit 1; }
426
+
427
+ # The source snapshot can originate on Windows. A CRLF gradlew has a hidden
428
+ # carriage return in its shebang and Linux reports:
429
+ # ./gradlew: cannot execute: required file not found
430
+ # Normalize only the wrapper script; source files themselves are left intact.
431
+ sed -i 's/\r$//' gradlew
397
432
  chmod +x gradlew
433
+
434
+ # The Jenkins machine supplies Java, Android SDK/NDK and the shared Gradle
435
+ # installation/cache. Keep the project wrapper as the compatibility source of
436
+ # truth, but prefer an already-installed server Gradle when it exactly matches
437
+ # the wrapper version. If the wrapper ever has to download, give it enough time
438
+ # for a real network rather than Gradle's short default timeout.
398
439
  echo "sdk.dir=$ANDROID_HOME" > local.properties
440
+
441
+ WRAPPER_PROPS="gradle/wrapper/gradle-wrapper.properties"
442
+ if grep -q '^networkTimeout=' "$WRAPPER_PROPS"; then
443
+ sed -i 's/^networkTimeout=.*/networkTimeout=120000/' "$WRAPPER_PROPS"
444
+ else
445
+ printf '\nnetworkTimeout=120000\n' >> "$WRAPPER_PROPS"
446
+ fi
447
+
448
+ WRAPPER_URL=$(grep '^distributionUrl=' "$WRAPPER_PROPS" | tail -n 1 | cut -d= -f2-)
449
+ WRAPPER_FILE=$(basename "$WRAPPER_URL")
450
+ WRAPPER_VERSION=${WRAPPER_FILE#gradle-}
451
+ WRAPPER_VERSION=${WRAPPER_VERSION%-bin.zip}
452
+ WRAPPER_VERSION=${WRAPPER_VERSION%-all.zip}
453
+ SYSTEM_GRADLE_VERSION=''
454
+ if command -v gradle >/dev/null 2>&1; then
455
+ SYSTEM_GRADLE_VERSION=$(gradle --version 2>/dev/null | awk '/^Gradle / { print $2; exit }')
456
+ fi
457
+
458
+ cat > .indraq-gradle <<'GRADLE_RUNNER'
459
+ #!/usr/bin/env bash
460
+ set -Eeuo pipefail
461
+ WRAPPER_PROPS="gradle/wrapper/gradle-wrapper.properties"
462
+ WRAPPER_URL=$(grep '^distributionUrl=' "$WRAPPER_PROPS" | tail -n 1 | cut -d= -f2-)
463
+ WRAPPER_FILE=$(basename "$WRAPPER_URL")
464
+ WRAPPER_VERSION=${WRAPPER_FILE#gradle-}
465
+ WRAPPER_VERSION=${WRAPPER_VERSION%-bin.zip}
466
+ WRAPPER_VERSION=${WRAPPER_VERSION%-all.zip}
467
+ CACHED_GRADLE=''
468
+ if [ -n "$WRAPPER_VERSION" ] && [ -d "${GRADLE_USER_HOME:-$HOME/.gradle}/wrapper/dists" ]; then
469
+ CACHED_GRADLE=$(find "${GRADLE_USER_HOME:-$HOME/.gradle}/wrapper/dists" -type f -path "*/gradle-$WRAPPER_VERSION/bin/gradle" -print -quit 2>/dev/null || true)
470
+ fi
471
+
472
+ # Exact cached wrapper distribution is safest because it matches the project.
473
+ if [ -n "$CACHED_GRADLE" ]; then
474
+ exec bash ./gradlew "$@"
475
+ fi
476
+
477
+ # If the Jenkins host has Gradle installed, reuse it when it is the same major
478
+ # line as the requested wrapper. This avoids an internet download while still
479
+ # refusing obviously incompatible Gradle generations (for example 8.x vs 9.x).
480
+ if command -v gradle >/dev/null 2>&1; then
481
+ SYSTEM_VERSION=$(gradle --version 2>/dev/null | awk '/^Gradle / { print $2; exit }')
482
+ WRAPPER_MAJOR=${WRAPPER_VERSION%%.*}
483
+ SYSTEM_MAJOR=${SYSTEM_VERSION%%.*}
484
+ if [ -n "$WRAPPER_MAJOR" ] && [ "$SYSTEM_MAJOR" = "$WRAPPER_MAJOR" ]; then
485
+ if [ "$SYSTEM_VERSION" != "$WRAPPER_VERSION" ]; then
486
+ echo "IndraQ: using server Gradle $SYSTEM_VERSION for wrapper request $WRAPPER_VERSION (same major version)." >&2
487
+ fi
488
+ exec gradle "$@"
489
+ fi
490
+ fi
491
+
492
+ # Last resort: project wrapper. Its networkTimeout is raised to 120 seconds and
493
+ # it uses the shared Jenkins Gradle cache, so any download happens at most once.
494
+ exec bash ./gradlew "$@"
495
+ GRADLE_RUNNER
496
+ chmod +x .indraq-gradle
497
+
498
+ CACHED_GRADLE=''
499
+ if [ -n "$WRAPPER_VERSION" ] && [ -d "$GRADLE_USER_HOME/wrapper/dists" ]; then
500
+ CACHED_GRADLE=$(find "$GRADLE_USER_HOME/wrapper/dists" -type f -path "*/gradle-$WRAPPER_VERSION/bin/gradle" -print -quit 2>/dev/null || true)
501
+ fi
502
+
503
+ echo "========== Android Build Toolchain =========="
504
+ echo "Android SDK : $ANDROID_HOME"
505
+ echo "Shared Gradle cache: $GRADLE_USER_HOME"
506
+ echo "Wrapper shebang : $(head -n 1 gradlew)"
507
+ echo "Wrapper Gradle : ${WRAPPER_VERSION:-unknown}"
508
+ if [ -n "$SYSTEM_GRADLE_VERSION" ]; then
509
+ echo "System Gradle : $SYSTEM_GRADLE_VERSION"
510
+ else
511
+ echo "System Gradle : not in PATH"
512
+ fi
513
+ if [ -n "$CACHED_GRADLE" ]; then
514
+ echo "Cached wrapper : yes ($CACHED_GRADLE)"
515
+ elif [ -n "$SYSTEM_GRADLE_VERSION" ] && [ "$SYSTEM_GRADLE_VERSION" = "$WRAPPER_VERSION" ]; then
516
+ echo "Gradle source : matching server Gradle executable"
517
+ else
518
+ echo "Cached wrapper : not found; wrapper may download once (timeout raised to 120s)."
519
+ fi
520
+ if [ -d "$ANDROID_HOME/ndk" ]; then
521
+ echo "Installed NDKs:"
522
+ find "$ANDROID_HOME/ndk" -mindepth 1 -maxdepth 1 -type d -printf ' %f\n' | sort || true
523
+ fi
524
+ echo "============================================="
399
525
  '''
400
526
  }
401
527
  }
@@ -471,8 +597,8 @@ NODE
471
597
  sh '''#!/usr/bin/env bash
472
598
  set -Eeuo pipefail
473
599
  exec > >(tee -a "$BUILD_LOG_FILE") 2>&1
474
- ./gradlew --stop || true
475
- NODE_ENV="$NODE_ENV_VALUE" ./gradlew clean --console=plain --no-build-cache
600
+ bash ./.indraq-gradle --stop || true
601
+ NODE_ENV="$NODE_ENV_VALUE" bash ./.indraq-gradle clean --console=plain --no-build-cache
476
602
  '''
477
603
  }
478
604
  }
@@ -487,26 +613,26 @@ NODE_ENV="$NODE_ENV_VALUE" ./gradlew clean --console=plain --no-build-cache
487
613
  sh '''#!/usr/bin/env bash
488
614
  set -Eeuo pipefail
489
615
  exec > >(tee -a "$BUILD_LOG_FILE") 2>&1
490
- NODE_ENV="$NODE_ENV_VALUE" ./gradlew "$GRADLE_TASK" --console=plain --stacktrace --info
616
+ NODE_ENV="$NODE_ENV_VALUE" bash ./.indraq-gradle "$GRADLE_TASK" --console=plain --stacktrace --info
491
617
  '''
492
618
  } else {
493
619
  sh '''#!/usr/bin/env bash
494
620
  set -Eeuo pipefail
495
621
  exec > >(tee -a "$BUILD_LOG_FILE") 2>&1
496
- NODE_ENV="$NODE_ENV_VALUE" ./gradlew "$GRADLE_TASK" --console=plain
622
+ NODE_ENV="$NODE_ENV_VALUE" bash ./.indraq-gradle "$GRADLE_TASK" --console=plain
497
623
  '''
498
624
  }
499
625
  } else if (params.VERBOSE_BUILD) {
500
626
  sh '''#!/usr/bin/env bash
501
627
  set -Eeuo pipefail
502
628
  exec > >(tee -a "$BUILD_LOG_FILE") 2>&1
503
- NODE_ENV="$NODE_ENV_VALUE" ./gradlew "$GRADLE_TASK" --console=plain --no-build-cache --rerun-tasks --stacktrace --info
629
+ NODE_ENV="$NODE_ENV_VALUE" bash ./.indraq-gradle "$GRADLE_TASK" --console=plain --no-build-cache --rerun-tasks --stacktrace --info
504
630
  '''
505
631
  } else {
506
632
  sh '''#!/usr/bin/env bash
507
633
  set -Eeuo pipefail
508
634
  exec > >(tee -a "$BUILD_LOG_FILE") 2>&1
509
- NODE_ENV="$NODE_ENV_VALUE" ./gradlew "$GRADLE_TASK" --console=plain --no-build-cache --rerun-tasks
635
+ NODE_ENV="$NODE_ENV_VALUE" bash ./.indraq-gradle "$GRADLE_TASK" --console=plain --no-build-cache --rerun-tasks
510
636
  '''
511
637
  }
512
638
  }