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 +74 -18
- package/dist/cli/create-program.d.ts.map +1 -1
- package/dist/cli/create-program.js +19 -1
- package/dist/cli/create-program.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
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.
|
|
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.
|
|
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.
|
|
148
|
+
## What changed in v1.5.5?
|
|
149
149
|
|
|
150
|
-
v1.5.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
1196
|
+
1.5.3
|
|
1181
1197
|
```
|
|
1182
1198
|
|
|
1183
|
-
v1.5.
|
|
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.
|
|
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.
|
|
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":"
|
|
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(
|
|
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":"
|
|
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,
|
|
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":";;;;;;AAAA,kDAA0B;AAC1B,wDAAgC;AAChC,qCAAqC;AACrC,2DAQiC;AACjC,yEAIoC;AACpC,0EAI+C;AAC/C,6EAMiD;AACjD,iEAGqC;AACrC,6EAAuF;AACvF,+EAA+E;AAC/E,2EAAgF;AAahF,MAAM,QAAQ,GAAG,CAAC,GAA0B,EAAU,EAAE,CACtD,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;AAE/E,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE;IAC5C,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,KAAK,EAAE,OAA2B,EAAiB,EAAE;IAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAG,MAAM,IAAA,2DAAgC,EAAC,GAAG,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAE3E,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC7F,IAAA,4CAA4B,EAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;IAC7C,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;IACrD,IAAI,MAAM,CAAC,UAAU,CAAC,wBAAwB,IAAI,cAAc,IAAI,wCAAwB,EAAE,CAAC;QAC7F,MAAM,IAAI,KAAK,CACb,kCAAkC,wCAAwB,4JAA4J,CACvN,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,IAAA,2CAAyB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACrE,IAAA,sDAAoC,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAE3G,MAAM,OAAO,GAAG,IAAA,sCAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,oBAAoB,CAAC;IACjD,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,iEAAiE,OAAO,CAAC,IAAI,6DAA6D,CAC3I,CAAC;IACJ,CAAC;IACD,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;;QACpF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;IAEvF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,IAAA,4CAA2B,GAAE,CAAC;IACzD,MAAM,eAAe,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAA,6CAA4B,EAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,sKAAsK,CACvK,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,4KAA4K,CAC7K,CAAC;IACJ,CAAC;IAED,IAAA,qCAAmB,GAAE,CAAC;IACtB,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAA,sCAAoB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAA,wCAAsB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjH,MAAM,IAAI,KAAK,CAAC,kHAAkH,CAAC,CAAC;IACtI,CAAC;IACD,MAAM,SAAS,GAAG,IAAA,+CAA6B,EAAC,OAAO,CAAC,CAAC;IACzD,IAAI,SAAS,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC;QACxD,kBAAkB,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC;QACtG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;QAClD,IAAA,6CAA4B,EAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,IAAA,wCAAsB,EAAC,OAAO,EAAE,uCAAuB,EAAE,qBAAqB,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iBAAiB,uCAAuB,EAAE,CAAC,CAAC,CAAC;IAErE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,cAAc,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAA,sCAAW,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAA,uCAAY,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,mBAAmB,uCAAuB,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,SAAS,IAAI,uBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClI,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC,CAAC;IAErH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4CAA4C,UAAU,kEAAkE,CAAC,CAAC,CAAC;QACtJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oDAAoD,cAAc,kEAAkE,CAAC,CAAC,CAAC;QAClK,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,sHAAsH,CAAC,CAAC,CAAC;QAClJ,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAgB;YACvD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,+DAA+D;gBACxE,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAA,mDAA4B,EAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAC7G,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,YAAY;QAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,UAAU,MAAM,cAAc,EAAE,CAAC,CAAC,CAAC;IACpH,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAEpF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,IAAA,0CAAkB,EAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4BAA4B,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC,CAAC;IAC3H,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAAC;IAEvJ,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,IAAA,kDAAyB,EAAC,OAAO,EAAE,uCAAuB,EAAE;YAC/E,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU;YACV,cAAc;YACd,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,GAAG;YAChB,MAAM;YACN,OAAO;YACP,gBAAgB,EAAE,MAAM,CAAC,WAAW;YACpC,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,WAAW,EAAE,OAAO;YACpB,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAC/D,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;SAClC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,WAAW,4BAA4B,CAAC,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACxC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,wDAAwC,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACtF,IAAI,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iHAAiH,CAAC,CAAC,CAAC;QAC/I,CAAC;aAAM,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YACpE,MAAM,QAAQ,GAAG,IAAA,mDAA4B,EAC3C,OAAO,CAAC,IAAI,EACZ,MAAM,CAAC,WAAW,EAClB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAClC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CACvC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACpJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC5J,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY;gBAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5F,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qHAAqH,CAAC,CAAC,CAAC;QACnJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAlLW,QAAA,WAAW,eAkLtB"}
|
|
@@ -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,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jenkins-mobile.service.js","sourceRoot":"","sources":["../../../../src/modules/mobile/services/jenkins-mobile.service.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAErC,6EAIiD;AAmDjD,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAE/F,MAAM,oBAAoB,GAAG,CAAC,KAAwB,EAAU,EAAE,CAChE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC;AACjD,MAAM,oBAAoB,GAAG,CAAC,KAA4B,EAAU,EAAE,CACpE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;AACnF,MAAM,eAAe,GAAG,CAAC,KAAwB,EAAU,EAAE;IAC3D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,oBAAoB,CAAC,CAAC,OAAO,oBAAoB,CAAC;QACvD,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;QACrC,KAAK,aAAa,CAAC,CAAC,OAAO,aAAa,CAAC;QACzC,KAAK,aAAa,CAAC,CAAC,OAAO,aAAa,CAAC;IAC3C,CAAC;AACH,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,CAAC,KAAyB,EAAU,EAAE,CAC7D,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;AAEzE,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAA0B,EAAE,CAAC,CAAC;IACzF,aAAa,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;CAC5F,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,KAAK,EACrB,GAAW,EACX,OAA+B,EAC/B,OAAO,GAAG,MAAM,EACJ,EAAE;IACd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,OAAO;QACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;KACrC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAO,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EACpB,MAA6B,EAC7B,WAAmC,EACF,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAA,qCAAmB,EAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACtF,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAoD,CAAC;QACrF,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,8DAA8D;QAC9D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,QAAuB,EAAE,OAAe,EAAU,EAAE;IAC9E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAA,qCAAmB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,yEAAyE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAC7B,QAAgB,EAChB,WAAmC,EACO,EAAE;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC1C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAmB,GAAG,QAAQ,WAAW,EAAE,WAAW,CAAC,CAAC;QACpF,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC7G,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;QACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,GAAG;YAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACvF,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EACvB,QAAgB,EAChB,WAAmC,EACR,EAAE;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,kCAAkC,KAAK,EAAE,EAAE;YACpF,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4CAA4C,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,OAAO;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,KAAK,GAAG,IAAI,CAAC;QAExC,MAAM,KAAK,GAAG,MAAM,SAAS,CAC3B,GAAG,QAAQ,yEAAyE,EACpF,WAAW,CACZ,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;QACzF,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC/D,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,yBAAyB,GAAG,KAAK,EAC5C,MAA6B,EAC7B,OAAe,EACf,OAAkC,EACC,EAAE;IACrC,MAAM,WAAW,GAAG,IAAA,wCAAsB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,IAAA,sCAAoB,EAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,MAAM,IAAA,oBAAU,EAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAEjE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEjE,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,sBAAsB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,YAAY,EAAE;YAC5C,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,gDAAgD,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,4KAA4K,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACtM,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,mDAAmD,QAAQ,CAAC,MAAM,4CAA4C,CAAC,CAAC;QAClI,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAElE,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC;IACzC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;SACtC,MAAM,CAAC,CAAC,IAAI,EAAsD,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;SACjH,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,aAAa,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;KACjG,CAAC,CAAC,CAAC;IAEN,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,MAAM,kBAAkB,MAAM,oCAAoC,CAAC,CAAC;IACvH,CAAC;IAED,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,MAAM;QAC3B,QAAQ,EAAE,OAAO,CAAC,GAAG;QACrB,MAAM;QACN,SAAS;KACV,CAAC;AACJ,CAAC,CAAC;AAvFW,QAAA,yBAAyB,6BAuFpC"}
|
|
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
|
@@ -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
|
-
//
|
|
75
|
-
|
|
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:
|
|
255
|
-
|
|
256
|
-
|
|
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
|
-
|
|
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
|
-
|
|
475
|
-
NODE_ENV="$NODE_ENV_VALUE"
|
|
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"
|
|
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"
|
|
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"
|
|
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"
|
|
635
|
+
NODE_ENV="$NODE_ENV_VALUE" bash ./.indraq-gradle "$GRADLE_TASK" --console=plain --no-build-cache --rerun-tasks
|
|
510
636
|
'''
|
|
511
637
|
}
|
|
512
638
|
}
|