@expo/build-tools 1.0.86 → 1.0.88
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/dist/android/gradle.d.ts +3 -2
- package/dist/android/gradle.js +3 -3
- package/dist/android/gradle.js.map +1 -1
- package/dist/builders/android.js +14 -1
- package/dist/builders/android.js.map +1 -1
- package/dist/builders/ios.js +14 -1
- package/dist/builders/ios.js.map +1 -1
- package/dist/ios/fastlane.d.ts +3 -2
- package/dist/ios/fastlane.js +2 -2
- package/dist/ios/fastlane.js.map +1 -1
- package/dist/steps/easFunctions.js +2 -0
- package/dist/steps/easFunctions.js.map +1 -1
- package/dist/steps/functionGroups/build.js +49 -8
- package/dist/steps/functionGroups/build.js.map +1 -1
- package/dist/steps/functions/calculateEASUpdateRuntimeVersion.d.ts +2 -0
- package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js +46 -0
- package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js.map +1 -0
- package/dist/steps/functions/configureEASUpdateIfInstalled.js +8 -1
- package/dist/steps/functions/configureEASUpdateIfInstalled.js.map +1 -1
- package/dist/steps/functions/runFastlane.js +13 -6
- package/dist/steps/functions/runFastlane.js.map +1 -1
- package/dist/steps/functions/runGradle.js +9 -0
- package/dist/steps/functions/runGradle.js.map +1 -1
- package/dist/steps/utils/android/gradle.d.ts +2 -1
- package/dist/steps/utils/android/gradle.js +2 -2
- package/dist/steps/utils/android/gradle.js.map +1 -1
- package/dist/steps/utils/expoUpdates.d.ts +4 -3
- package/dist/steps/utils/expoUpdates.js +26 -23
- package/dist/steps/utils/expoUpdates.js.map +1 -1
- package/dist/steps/utils/ios/fastlane.d.ts +7 -5
- package/dist/steps/utils/ios/fastlane.js +4 -2
- package/dist/steps/utils/ios/fastlane.js.map +1 -1
- package/dist/utils/expoUpdates.d.ts +13 -2
- package/dist/utils/expoUpdates.js +26 -16
- package/dist/utils/expoUpdates.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateEASUpdateRuntimeVersionFunction = void 0;
|
|
4
|
+
const steps_1 = require("@expo/steps");
|
|
5
|
+
const expoUpdates_1 = require("../../utils/expoUpdates");
|
|
6
|
+
const appConfig_1 = require("../../utils/appConfig");
|
|
7
|
+
function calculateEASUpdateRuntimeVersionFunction() {
|
|
8
|
+
return new steps_1.BuildFunction({
|
|
9
|
+
namespace: 'eas',
|
|
10
|
+
id: 'calculate_eas_update_runtime_version',
|
|
11
|
+
name: 'Calculate EAS Update Runtime Version',
|
|
12
|
+
outputProviders: [
|
|
13
|
+
steps_1.BuildStepOutput.createProvider({
|
|
14
|
+
id: 'resolved_eas_update_runtime_version',
|
|
15
|
+
required: false,
|
|
16
|
+
}),
|
|
17
|
+
],
|
|
18
|
+
fn: async (stepCtx, { env, outputs }) => {
|
|
19
|
+
var _a;
|
|
20
|
+
const appConfig = (0, appConfig_1.readAppConfig)({
|
|
21
|
+
projectDir: stepCtx.workingDirectory,
|
|
22
|
+
env: Object.keys(env).reduce((acc, key) => {
|
|
23
|
+
var _a;
|
|
24
|
+
acc[key] = (_a = env[key]) !== null && _a !== void 0 ? _a : '';
|
|
25
|
+
return acc;
|
|
26
|
+
}, {}),
|
|
27
|
+
logger: stepCtx.logger,
|
|
28
|
+
sdkVersion: (_a = stepCtx.global.staticContext.metadata) === null || _a === void 0 ? void 0 : _a.sdkVersion,
|
|
29
|
+
}).exp;
|
|
30
|
+
const resolvedRuntimeVersion = await (0, expoUpdates_1.resolveRuntimeVersionForExpoUpdatesIfConfiguredAsync)({
|
|
31
|
+
cwd: stepCtx.workingDirectory,
|
|
32
|
+
logger: stepCtx.logger,
|
|
33
|
+
appConfig,
|
|
34
|
+
platform: stepCtx.global.staticContext.job.platform,
|
|
35
|
+
});
|
|
36
|
+
if (resolvedRuntimeVersion) {
|
|
37
|
+
outputs.resolved_eas_update_runtime_version.set(resolvedRuntimeVersion);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
stepCtx.logger.info('Skipped because EAS Update is not configured');
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
exports.calculateEASUpdateRuntimeVersionFunction = calculateEASUpdateRuntimeVersionFunction;
|
|
46
|
+
//# sourceMappingURL=calculateEASUpdateRuntimeVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateEASUpdateRuntimeVersion.js","sourceRoot":"","sources":["../../../src/steps/functions/calculateEASUpdateRuntimeVersion.ts"],"names":[],"mappings":";;;AAAA,uCAA6D;AAE7D,yDAA+F;AAC/F,qDAAsD;AAEtD,SAAgB,wCAAwC;IACtD,OAAO,IAAI,qBAAa,CAAC;QACvB,SAAS,EAAE,KAAK;QAChB,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,sCAAsC;QAC5C,eAAe,EAAE;YACf,uBAAe,CAAC,cAAc,CAAC;gBAC7B,EAAE,EAAE,qCAAqC;gBACzC,QAAQ,EAAE,KAAK;aAChB,CAAC;SACH;QACD,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;;YACtC,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC;gBAC9B,UAAU,EAAE,OAAO,CAAC,gBAAgB;gBACpC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;;oBACX,GAAG,CAAC,GAAG,CAAC,GAAG,MAAA,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;oBAC1B,OAAO,GAAG,CAAC;gBACb,CAAC,EACD,EAA4B,CAC7B;gBACD,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,MAAA,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,0CAAE,UAAU;aAC9D,CAAC,CAAC,GAAG,CAAC;YACP,MAAM,sBAAsB,GAAG,MAAM,IAAA,kEAAoD,EAAC;gBACxF,GAAG,EAAE,OAAO,CAAC,gBAAgB;gBAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS;gBACT,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ;aACpD,CAAC,CAAC;YACH,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,OAAO,CAAC,mCAAmC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AArCD,4FAqCC","sourcesContent":["import { BuildFunction, BuildStepOutput } from '@expo/steps';\n\nimport { resolveRuntimeVersionForExpoUpdatesIfConfiguredAsync } from '../../utils/expoUpdates';\nimport { readAppConfig } from '../../utils/appConfig';\n\nexport function calculateEASUpdateRuntimeVersionFunction(): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: 'calculate_eas_update_runtime_version',\n name: 'Calculate EAS Update Runtime Version',\n outputProviders: [\n BuildStepOutput.createProvider({\n id: 'resolved_eas_update_runtime_version',\n required: false,\n }),\n ],\n fn: async (stepCtx, { env, outputs }) => {\n const appConfig = readAppConfig({\n projectDir: stepCtx.workingDirectory,\n env: Object.keys(env).reduce(\n (acc, key) => {\n acc[key] = env[key] ?? '';\n return acc;\n },\n {} as Record<string, string>\n ),\n logger: stepCtx.logger,\n sdkVersion: stepCtx.global.staticContext.metadata?.sdkVersion,\n }).exp;\n const resolvedRuntimeVersion = await resolveRuntimeVersionForExpoUpdatesIfConfiguredAsync({\n cwd: stepCtx.workingDirectory,\n logger: stepCtx.logger,\n appConfig,\n platform: stepCtx.global.staticContext.job.platform,\n });\n if (resolvedRuntimeVersion) {\n outputs.resolved_eas_update_runtime_version.set(resolvedRuntimeVersion);\n } else {\n stepCtx.logger.info('Skipped because EAS Update is not configured');\n }\n },\n });\n}\n"]}
|
|
@@ -32,6 +32,11 @@ function configureEASUpdateIfInstalledFunction() {
|
|
|
32
32
|
defaultValue: true,
|
|
33
33
|
allowedValueTypeName: steps_1.BuildStepInputValueTypeName.BOOLEAN,
|
|
34
34
|
}),
|
|
35
|
+
steps_1.BuildStepInput.createProvider({
|
|
36
|
+
id: 'resolved_eas_update_runtime_version',
|
|
37
|
+
required: false,
|
|
38
|
+
allowedValueTypeName: steps_1.BuildStepInputValueTypeName.STRING,
|
|
39
|
+
}),
|
|
35
40
|
],
|
|
36
41
|
fn: async (stepCtx, { env, inputs }) => {
|
|
37
42
|
(0, assert_1.default)(stepCtx.global.staticContext.job, 'Job is not defined');
|
|
@@ -49,6 +54,7 @@ function configureEASUpdateIfInstalledFunction() {
|
|
|
49
54
|
}).exp;
|
|
50
55
|
const releaseChannelInput = inputs.channel.value;
|
|
51
56
|
const runtimeVersionInput = inputs.runtime_version.value;
|
|
57
|
+
const resolvedRuntimeVersionInput = inputs.resolved_eas_update_runtime_version.value;
|
|
52
58
|
const throwIfNotConfigured = inputs.throw_if_not_configured.value;
|
|
53
59
|
if (runtimeVersionInput && !semver_1.default.valid(runtimeVersionInput)) {
|
|
54
60
|
throw new Error(`Runtime version provided by the "runtime_version" input is not a valid semver version: ${releaseChannelInput}`);
|
|
@@ -62,7 +68,6 @@ function configureEASUpdateIfInstalledFunction() {
|
|
|
62
68
|
return;
|
|
63
69
|
}
|
|
64
70
|
await (0, expoUpdates_1.configureEASUpdateAsync)({
|
|
65
|
-
expoUpdatesPackageVersion,
|
|
66
71
|
job,
|
|
67
72
|
workingDirectory: stepCtx.workingDirectory,
|
|
68
73
|
logger: stepCtx.logger,
|
|
@@ -70,7 +75,9 @@ function configureEASUpdateIfInstalledFunction() {
|
|
|
70
75
|
inputs: {
|
|
71
76
|
runtimeVersion: runtimeVersionInput,
|
|
72
77
|
channel: releaseChannelInput,
|
|
78
|
+
resolvedRuntimeVersion: resolvedRuntimeVersionInput,
|
|
73
79
|
},
|
|
80
|
+
metadata: stepCtx.global.staticContext.metadata,
|
|
74
81
|
});
|
|
75
82
|
},
|
|
76
83
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureEASUpdateIfInstalled.js","sourceRoot":"","sources":["../../../src/steps/functions/configureEASUpdateIfInstalled.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,uCAAyF;AAEzF,oDAA4B;AAE5B,sDAA+D;AAC/D,qDAAsD;AACtD,4IAAoH;AAEpH,SAAgB,qCAAqC;IACnD,OAAO,IAAI,qBAAa,CAAC;QACvB,SAAS,EAAE,KAAK;QAChB,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,sBAAsB;QAC5B,cAAc,EAAE;YACd,sBAAc,CAAC,cAAc,CAAC;gBAC5B,EAAE,EAAE,iBAAiB;gBACrB,QAAQ,EAAE,KAAK;gBACf,oBAAoB,EAAE,mCAA2B,CAAC,MAAM;aACzD,CAAC;YACF,sBAAc,CAAC,cAAc,CAAC;gBAC5B,EAAE,EAAE,SAAS;gBACb,QAAQ,EAAE,KAAK;gBACf,oBAAoB,EAAE,mCAA2B,CAAC,MAAM;aACzD,CAAC;YACF,sBAAc,CAAC,cAAc,CAAC;gBAC5B,EAAE,EAAE,yBAAyB;gBAC7B,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;gBAClB,oBAAoB,EAAE,mCAA2B,CAAC,OAAO;aAC1D,CAAC;SACH;QACD,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;YACrC,IAAA,gBAAM,EAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;YAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAgC,CAAC;YAE/E,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC;gBAC9B,UAAU,EAAE,OAAO,CAAC,gBAAgB;gBACpC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;;oBACX,GAAG,CAAC,GAAG,CAAC,GAAG,MAAA,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;oBAC1B,OAAO,GAAG,CAAC;gBACb,CAAC,EACD,EAA4B,CAC7B;gBACD,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU;aACjC,CAAC,CAAC,GAAG,CAAC;YAEP,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,KAA2B,CAAC;YACvE,MAAM,mBAAmB,GAAG,MAAM,CAAC,eAAe,CAAC,KAA2B,CAAC;YAC/E,MAAM,oBAAoB,GAAG,MAAM,CAAC,uBAAuB,CAAC,KAAgB,CAAC;YAC7E,IAAI,mBAAmB,IAAI,CAAC,gBAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CACb,0FAA0F,mBAAmB,EAAE,CAChH,CAAC;YACJ,CAAC;YAED,MAAM,yBAAyB,GAAG,MAAM,IAAA,sDAA4C,EAClF,OAAO,CAAC,gBAAgB,CACzB,CAAC;YACF,IAAI,yBAAyB,KAAK,IAAI,EAAE,CAAC;gBACvC,IAAI,oBAAoB,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,gFAAgF,CACjF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,IAAA,qCAAuB,EAAC;gBAC5B,
|
|
1
|
+
{"version":3,"file":"configureEASUpdateIfInstalled.js","sourceRoot":"","sources":["../../../src/steps/functions/configureEASUpdateIfInstalled.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\n\nimport { BuildFunction, BuildStepInput, BuildStepInputValueTypeName } from '@expo/steps';\nimport { Metadata } from '@expo/eas-build-job';\nimport semver from 'semver';\n\nimport { configureEASUpdateAsync } from '../utils/expoUpdates';\nimport { readAppConfig } from '../../utils/appConfig';\nimport getExpoUpdatesPackageVersionIfInstalledAsync from '../../utils/getExpoUpdatesPackageVersionIfInstalledAsync';\n\nexport function configureEASUpdateIfInstalledFunction(): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: 'configure_eas_update',\n name: 'Configure EAS Update',\n inputProviders: [\n BuildStepInput.createProvider({\n id: 'runtime_version',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'channel',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'throw_if_not_configured',\n required: false,\n defaultValue: true,\n allowedValueTypeName: BuildStepInputValueTypeName.BOOLEAN,\n }),\n BuildStepInput.createProvider({\n id: 'resolved_eas_update_runtime_version',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n ],\n fn: async (stepCtx, { env, inputs }) => {\n assert(stepCtx.global.staticContext.job, 'Job is not defined');\n const job = stepCtx.global.staticContext.job;\n const metadata = stepCtx.global.staticContext.metadata as Metadata | undefined;\n\n const appConfig = readAppConfig({\n projectDir: stepCtx.workingDirectory,\n env: Object.keys(env).reduce(\n (acc, key) => {\n acc[key] = env[key] ?? '';\n return acc;\n },\n {} as Record<string, string>\n ),\n logger: stepCtx.logger,\n sdkVersion: metadata?.sdkVersion,\n }).exp;\n\n const releaseChannelInput = inputs.channel.value as string | undefined;\n const runtimeVersionInput = inputs.runtime_version.value as string | undefined;\n const resolvedRuntimeVersionInput = inputs.resolved_eas_update_runtime_version.value as\n | string\n | undefined;\n const throwIfNotConfigured = inputs.throw_if_not_configured.value as boolean;\n if (runtimeVersionInput && !semver.valid(runtimeVersionInput)) {\n throw new Error(\n `Runtime version provided by the \"runtime_version\" input is not a valid semver version: ${releaseChannelInput}`\n );\n }\n\n const expoUpdatesPackageVersion = await getExpoUpdatesPackageVersionIfInstalledAsync(\n stepCtx.workingDirectory\n );\n if (expoUpdatesPackageVersion === null) {\n if (throwIfNotConfigured) {\n throw new Error(\n 'Cannot configure EAS Update because the expo-updates package is not installed.'\n );\n }\n stepCtx.logger.warn(\n 'Cannot configure EAS Update because the expo-updates package is not installed.'\n );\n return;\n }\n\n await configureEASUpdateAsync({\n job,\n workingDirectory: stepCtx.workingDirectory,\n logger: stepCtx.logger,\n appConfig,\n inputs: {\n runtimeVersion: runtimeVersionInput,\n channel: releaseChannelInput,\n resolvedRuntimeVersion: resolvedRuntimeVersionInput,\n },\n metadata: stepCtx.global.staticContext.metadata,\n });\n },\n });\n}\n"]}
|
|
@@ -19,18 +19,25 @@ function runFastlaneFunction() {
|
|
|
19
19
|
required: false,
|
|
20
20
|
}),
|
|
21
21
|
],
|
|
22
|
-
|
|
22
|
+
inputProviders: [
|
|
23
|
+
steps_1.BuildStepInput.createProvider({
|
|
24
|
+
id: 'resolved_eas_update_runtime_version',
|
|
25
|
+
required: false,
|
|
26
|
+
allowedValueTypeName: steps_1.BuildStepInputValueTypeName.STRING,
|
|
27
|
+
}),
|
|
28
|
+
],
|
|
29
|
+
fn: async (stepCtx, { env, outputs, inputs }) => {
|
|
23
30
|
outputs[slackMessageDynamicFields_1.BuildStepOutputName.STATUS_TEXT].set(slackMessageDynamicFields_1.BuildStatusText.STARTED);
|
|
31
|
+
const resolvedEASUpdateRuntimeVersion = inputs.resolved_eas_update_runtime_version.value;
|
|
24
32
|
try {
|
|
25
33
|
await (0, fastlane_1.runFastlaneGym)({
|
|
26
34
|
workingDir: stepCtx.workingDirectory,
|
|
27
|
-
env
|
|
28
|
-
var _a;
|
|
29
|
-
acc[key] = (_a = env[key]) !== null && _a !== void 0 ? _a : '';
|
|
30
|
-
return acc;
|
|
31
|
-
}, {}),
|
|
35
|
+
env,
|
|
32
36
|
logger: stepCtx.logger,
|
|
33
37
|
buildLogsDirectory: stepCtx.global.buildLogsDirectory,
|
|
38
|
+
...(resolvedEASUpdateRuntimeVersion
|
|
39
|
+
? { extraEnv: { EXPO_UPDATES_FINGERPRINT_OVERRIDE: resolvedEASUpdateRuntimeVersion } }
|
|
40
|
+
: null),
|
|
34
41
|
});
|
|
35
42
|
}
|
|
36
43
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runFastlane.js","sourceRoot":"","sources":["../../../src/steps/functions/runFastlane.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"runFastlane.js","sourceRoot":"","sources":["../../../src/steps/functions/runFastlane.ts"],"names":[],"mappings":";;;AAAA,uCAKqB;AAErB,oDAAuD;AACvD,kFAA0F;AAE1F,SAAgB,mBAAmB;IACjC,OAAO,IAAI,qBAAa,CAAC;QACvB,SAAS,EAAE,KAAK;QAChB,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,eAAe,EAAE;YACf,uBAAe,CAAC,cAAc,CAAC;gBAC7B,EAAE,EAAE,+CAAmB,CAAC,WAAW;gBACnC,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,uBAAe,CAAC,cAAc,CAAC;gBAC7B,EAAE,EAAE,+CAAmB,CAAC,UAAU;gBAClC,QAAQ,EAAE,KAAK;aAChB,CAAC;SACH;QACD,cAAc,EAAE;YACd,sBAAc,CAAC,cAAc,CAAC;gBAC5B,EAAE,EAAE,qCAAqC;gBACzC,QAAQ,EAAE,KAAK;gBACf,oBAAoB,EAAE,mCAA2B,CAAC,MAAM;aACzD,CAAC;SACH;QACD,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;YAC9C,OAAO,CAAC,+CAAmB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,2CAAe,CAAC,OAAO,CAAC,CAAC;YACtE,MAAM,+BAA+B,GAAG,MAAM,CAAC,mCAAmC,CAAC,KAEtE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,IAAA,yBAAc,EAAC;oBACnB,UAAU,EAAE,OAAO,CAAC,gBAAgB;oBACpC,GAAG;oBACH,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB;oBACrD,GAAG,CAAC,+BAA+B;wBACjC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,EAAE;wBACtF,CAAC,CAAC,IAAI,CAAC;iBACV,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,+CAAmB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,2CAAe,CAAC,KAAK,CAAC,CAAC;gBACpE,OAAO,CAAC,+CAAmB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAE,KAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzE,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,CAAC,+CAAmB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,2CAAe,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AA7CD,kDA6CC","sourcesContent":["import {\n BuildFunction,\n BuildStepInput,\n BuildStepInputValueTypeName,\n BuildStepOutput,\n} from '@expo/steps';\n\nimport { runFastlaneGym } from '../utils/ios/fastlane';\nimport { BuildStatusText, BuildStepOutputName } from '../utils/slackMessageDynamicFields';\n\nexport function runFastlaneFunction(): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: 'run_fastlane',\n name: 'Run fastlane',\n outputProviders: [\n BuildStepOutput.createProvider({\n id: BuildStepOutputName.STATUS_TEXT,\n required: true,\n }),\n BuildStepOutput.createProvider({\n id: BuildStepOutputName.ERROR_TEXT,\n required: false,\n }),\n ],\n inputProviders: [\n BuildStepInput.createProvider({\n id: 'resolved_eas_update_runtime_version',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n ],\n fn: async (stepCtx, { env, outputs, inputs }) => {\n outputs[BuildStepOutputName.STATUS_TEXT].set(BuildStatusText.STARTED);\n const resolvedEASUpdateRuntimeVersion = inputs.resolved_eas_update_runtime_version.value as\n | string\n | undefined;\n try {\n await runFastlaneGym({\n workingDir: stepCtx.workingDirectory,\n env,\n logger: stepCtx.logger,\n buildLogsDirectory: stepCtx.global.buildLogsDirectory,\n ...(resolvedEASUpdateRuntimeVersion\n ? { extraEnv: { EXPO_UPDATES_FINGERPRINT_OVERRIDE: resolvedEASUpdateRuntimeVersion } }\n : null),\n });\n } catch (error) {\n outputs[BuildStepOutputName.STATUS_TEXT].set(BuildStatusText.ERROR);\n outputs[BuildStepOutputName.ERROR_TEXT].set((error as Error).toString());\n throw error;\n }\n outputs[BuildStepOutputName.STATUS_TEXT].set(BuildStatusText.SUCCESS);\n },\n });\n}\n"]}
|
|
@@ -21,6 +21,11 @@ function runGradleFunction() {
|
|
|
21
21
|
required: false,
|
|
22
22
|
allowedValueTypeName: steps_1.BuildStepInputValueTypeName.STRING,
|
|
23
23
|
}),
|
|
24
|
+
steps_1.BuildStepInput.createProvider({
|
|
25
|
+
id: 'resolved_eas_update_runtime_version',
|
|
26
|
+
required: false,
|
|
27
|
+
allowedValueTypeName: steps_1.BuildStepInputValueTypeName.STRING,
|
|
28
|
+
}),
|
|
24
29
|
],
|
|
25
30
|
outputProviders: [
|
|
26
31
|
steps_1.BuildStepOutput.createProvider({
|
|
@@ -37,12 +42,16 @@ function runGradleFunction() {
|
|
|
37
42
|
(0, assert_1.default)(stepCtx.global.staticContext.job, 'Job is required');
|
|
38
43
|
(0, assert_1.default)(stepCtx.global.staticContext.job.platform === eas_build_job_1.Platform.ANDROID, 'This function is only available when building for Android');
|
|
39
44
|
const command = (0, gradle_1.resolveGradleCommand)(stepCtx.global.staticContext.job, inputs.command.value);
|
|
45
|
+
const resolvedEASUpdateRuntimeVersion = inputs.resolved_eas_update_runtime_version.value;
|
|
40
46
|
try {
|
|
41
47
|
await (0, gradle_1.runGradleCommand)({
|
|
42
48
|
logger: stepCtx.logger,
|
|
43
49
|
gradleCommand: command,
|
|
44
50
|
androidDir: path_1.default.join(stepCtx.workingDirectory, 'android'),
|
|
45
51
|
env,
|
|
52
|
+
...(resolvedEASUpdateRuntimeVersion
|
|
53
|
+
? { extraEnv: { EXPO_UPDATES_FINGERPRINT_OVERRIDE: resolvedEASUpdateRuntimeVersion } }
|
|
54
|
+
: null),
|
|
46
55
|
});
|
|
47
56
|
}
|
|
48
57
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runGradle.js","sourceRoot":"","sources":["../../../src/steps/functions/runGradle.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,oDAA4B;AAE5B,uDAA+C;AAC/C,uCAKqB;AAErB,oDAAiF;AACjF,kFAA0F;AAE1F,SAAgB,iBAAiB;IAC/B,OAAO,IAAI,qBAAa,CAAC;QACvB,SAAS,EAAE,KAAK;QAChB,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,cAAc,EAAE;YACd,sBAAc,CAAC,cAAc,CAAC;gBAC5B,EAAE,EAAE,SAAS;gBACb,QAAQ,EAAE,KAAK;gBACf,oBAAoB,EAAE,mCAA2B,CAAC,MAAM;aACzD,CAAC;SACH;QACD,eAAe,EAAE;YACf,uBAAe,CAAC,cAAc,CAAC;gBAC7B,EAAE,EAAE,+CAAmB,CAAC,WAAW;gBACnC,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,uBAAe,CAAC,cAAc,CAAC;gBAC7B,EAAE,EAAE,+CAAmB,CAAC,UAAU;gBAClC,QAAQ,EAAE,KAAK;aAChB,CAAC;SACH;QACD,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;YAC9C,OAAO,CAAC,+CAAmB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,2CAAe,CAAC,OAAO,CAAC,CAAC;YACtE,IAAA,gBAAM,EAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAC5D,IAAA,gBAAM,EACJ,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,KAAK,wBAAQ,CAAC,OAAO,EAC9D,2DAA2D,CAC5D,CAAC;YACF,MAAM,OAAO,GAAG,IAAA,6BAAoB,EAClC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAChC,MAAM,CAAC,OAAO,CAAC,KAA2B,CAC3C,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,IAAA,yBAAgB,EAAC;oBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,aAAa,EAAE,OAAO;oBACtB,UAAU,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC;oBAC1D,GAAG;
|
|
1
|
+
{"version":3,"file":"runGradle.js","sourceRoot":"","sources":["../../../src/steps/functions/runGradle.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,oDAA4B;AAE5B,uDAA+C;AAC/C,uCAKqB;AAErB,oDAAiF;AACjF,kFAA0F;AAE1F,SAAgB,iBAAiB;IAC/B,OAAO,IAAI,qBAAa,CAAC;QACvB,SAAS,EAAE,KAAK;QAChB,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,cAAc,EAAE;YACd,sBAAc,CAAC,cAAc,CAAC;gBAC5B,EAAE,EAAE,SAAS;gBACb,QAAQ,EAAE,KAAK;gBACf,oBAAoB,EAAE,mCAA2B,CAAC,MAAM;aACzD,CAAC;YACF,sBAAc,CAAC,cAAc,CAAC;gBAC5B,EAAE,EAAE,qCAAqC;gBACzC,QAAQ,EAAE,KAAK;gBACf,oBAAoB,EAAE,mCAA2B,CAAC,MAAM;aACzD,CAAC;SACH;QACD,eAAe,EAAE;YACf,uBAAe,CAAC,cAAc,CAAC;gBAC7B,EAAE,EAAE,+CAAmB,CAAC,WAAW;gBACnC,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,uBAAe,CAAC,cAAc,CAAC;gBAC7B,EAAE,EAAE,+CAAmB,CAAC,UAAU;gBAClC,QAAQ,EAAE,KAAK;aAChB,CAAC;SACH;QACD,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;YAC9C,OAAO,CAAC,+CAAmB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,2CAAe,CAAC,OAAO,CAAC,CAAC;YACtE,IAAA,gBAAM,EAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAC5D,IAAA,gBAAM,EACJ,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,KAAK,wBAAQ,CAAC,OAAO,EAC9D,2DAA2D,CAC5D,CAAC;YACF,MAAM,OAAO,GAAG,IAAA,6BAAoB,EAClC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAChC,MAAM,CAAC,OAAO,CAAC,KAA2B,CAC3C,CAAC;YACF,MAAM,+BAA+B,GAAG,MAAM,CAAC,mCAAmC,CAAC,KAEtE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,IAAA,yBAAgB,EAAC;oBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,aAAa,EAAE,OAAO;oBACtB,UAAU,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC;oBAC1D,GAAG;oBACH,GAAG,CAAC,+BAA+B;wBACjC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,EAAE;wBACtF,CAAC,CAAC,IAAI,CAAC;iBACV,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,+CAAmB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,2CAAe,CAAC,KAAK,CAAC,CAAC;gBACpE,OAAO,CAAC,+CAAmB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAE,KAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzE,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,CAAC,+CAAmB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,2CAAe,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AA3DD,8CA2DC","sourcesContent":["import path from 'path';\nimport assert from 'assert';\n\nimport { Platform } from '@expo/eas-build-job';\nimport {\n BuildFunction,\n BuildStepInput,\n BuildStepInputValueTypeName,\n BuildStepOutput,\n} from '@expo/steps';\n\nimport { resolveGradleCommand, runGradleCommand } from '../utils/android/gradle';\nimport { BuildStatusText, BuildStepOutputName } from '../utils/slackMessageDynamicFields';\n\nexport function runGradleFunction(): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: 'run_gradle',\n name: 'Run gradle',\n inputProviders: [\n BuildStepInput.createProvider({\n id: 'command',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'resolved_eas_update_runtime_version',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n ],\n outputProviders: [\n BuildStepOutput.createProvider({\n id: BuildStepOutputName.STATUS_TEXT,\n required: true,\n }),\n BuildStepOutput.createProvider({\n id: BuildStepOutputName.ERROR_TEXT,\n required: false,\n }),\n ],\n fn: async (stepCtx, { env, inputs, outputs }) => {\n outputs[BuildStepOutputName.STATUS_TEXT].set(BuildStatusText.STARTED);\n assert(stepCtx.global.staticContext.job, 'Job is required');\n assert(\n stepCtx.global.staticContext.job.platform === Platform.ANDROID,\n 'This function is only available when building for Android'\n );\n const command = resolveGradleCommand(\n stepCtx.global.staticContext.job,\n inputs.command.value as string | undefined\n );\n const resolvedEASUpdateRuntimeVersion = inputs.resolved_eas_update_runtime_version.value as\n | string\n | undefined;\n try {\n await runGradleCommand({\n logger: stepCtx.logger,\n gradleCommand: command,\n androidDir: path.join(stepCtx.workingDirectory, 'android'),\n env,\n ...(resolvedEASUpdateRuntimeVersion\n ? { extraEnv: { EXPO_UPDATES_FINGERPRINT_OVERRIDE: resolvedEASUpdateRuntimeVersion } }\n : null),\n });\n } catch (error) {\n outputs[BuildStepOutputName.STATUS_TEXT].set(BuildStatusText.ERROR);\n outputs[BuildStepOutputName.ERROR_TEXT].set((error as Error).toString());\n throw error;\n }\n outputs[BuildStepOutputName.STATUS_TEXT].set(BuildStatusText.SUCCESS);\n },\n });\n}\n"]}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
import { bunyan } from '@expo/logger';
|
|
3
3
|
import { BuildStepEnv } from '@expo/steps';
|
|
4
4
|
import { Android } from '@expo/eas-build-job';
|
|
5
|
-
export declare function runGradleCommand({ logger, gradleCommand, androidDir, env, }: {
|
|
5
|
+
export declare function runGradleCommand({ logger, gradleCommand, androidDir, env, extraEnv, }: {
|
|
6
6
|
logger: bunyan;
|
|
7
7
|
gradleCommand: string;
|
|
8
8
|
androidDir: string;
|
|
9
9
|
env: BuildStepEnv;
|
|
10
|
+
extraEnv?: BuildStepEnv;
|
|
10
11
|
}): Promise<void>;
|
|
11
12
|
export declare function resolveGradleCommand(job: Android.Job, command?: string): string;
|
|
@@ -8,7 +8,7 @@ const assert_1 = __importDefault(require("assert"));
|
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
10
10
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
11
|
-
async function runGradleCommand({ logger, gradleCommand, androidDir, env, }) {
|
|
11
|
+
async function runGradleCommand({ logger, gradleCommand, androidDir, env, extraEnv, }) {
|
|
12
12
|
logger.info(`Running 'gradlew ${gradleCommand}' in ${androidDir}`);
|
|
13
13
|
const spawnPromise = (0, turtle_spawn_1.default)('bash', ['-c', `sh gradlew ${gradleCommand}`], {
|
|
14
14
|
cwd: androidDir,
|
|
@@ -21,7 +21,7 @@ async function runGradleCommand({ logger, gradleCommand, androidDir, env, }) {
|
|
|
21
21
|
return line;
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
|
-
env,
|
|
24
|
+
env: { ...env, ...extraEnv },
|
|
25
25
|
});
|
|
26
26
|
if (env.EAS_BUILD_RUNNER === 'eas-build' && process.platform === 'linux') {
|
|
27
27
|
adjustOOMScore(spawnPromise, logger);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradle.js","sourceRoot":"","sources":["../../../../src/steps/utils/android/gradle.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,wDAA0B;AAG1B,sEAAsE;AACtE,uDAA8C;AAEvC,KAAK,UAAU,gBAAgB,CAAC,EACrC,MAAM,EACN,aAAa,EACb,UAAU,EACV,GAAG,
|
|
1
|
+
{"version":3,"file":"gradle.js","sourceRoot":"","sources":["../../../../src/steps/utils/android/gradle.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\n\nimport fs from 'fs-extra';\nimport { bunyan } from '@expo/logger';\nimport { BuildStepEnv } from '@expo/steps';\nimport spawn, { SpawnPromise, SpawnResult } from '@expo/turtle-spawn';\nimport { Android } from '@expo/eas-build-job';\n\nexport async function runGradleCommand({\n logger,\n gradleCommand,\n androidDir,\n env,\n extraEnv,\n}: {\n logger: bunyan;\n gradleCommand: string;\n androidDir: string;\n env: BuildStepEnv;\n extraEnv?: BuildStepEnv;\n}): Promise<void> {\n logger.info(`Running 'gradlew ${gradleCommand}' in ${androidDir}`);\n const spawnPromise = spawn('bash', ['-c', `sh gradlew ${gradleCommand}`], {\n cwd: androidDir,\n logger,\n lineTransformer: (line?: string) => {\n if (!line || /^\\.+$/.exec(line)) {\n return null;\n } else {\n return line;\n }\n },\n env: { ...env, ...extraEnv },\n });\n if (env.EAS_BUILD_RUNNER === 'eas-build' && process.platform === 'linux') {\n adjustOOMScore(spawnPromise, logger);\n }\n\n await spawnPromise;\n}\n\n/**\n * OOM Killer sometimes kills worker server while build is exceeding memory limits.\n * `oom_score_adj` is a value between -1000 and 1000 and it defaults to 0.\n * It defines which process is more likely to get killed (higher value more likely).\n *\n * This function sets oom_score_adj for Gradle process and all its child processes.\n */\nfunction adjustOOMScore(spawnPromise: SpawnPromise<SpawnResult>, logger: bunyan): void {\n setTimeout(\n async () => {\n try {\n assert(spawnPromise.child.pid);\n const pids = await getParentAndDescendantProcessPidsAsync(spawnPromise.child.pid);\n await Promise.all(\n pids.map(async (pid: number) => {\n // Value 800 is just a guess here. It's probably higher than most other\n // process. I didn't want to set it any higher, because I'm not sure if OOM Killer\n // can start killing processes when there is still enough memory left.\n const oomScoreOverride = 800;\n await fs.writeFile(`/proc/${pid}/oom_score_adj`, `${oomScoreOverride}\\n`);\n })\n );\n } catch (err: any) {\n logger.debug({ err, stderr: err?.stderr }, 'Failed to override oom_score_adj');\n }\n },\n // Wait 20 seconds to make sure all child processes are started\n 20000\n );\n}\n\nasync function getChildrenPidsAsync(parentPids: number[]): Promise<number[]> {\n try {\n const result = await spawn('pgrep', ['-P', parentPids.join(',')], {\n stdio: 'pipe',\n });\n return result.stdout\n .toString()\n .split('\\n')\n .map((i) => Number(i.trim()))\n .filter((i) => i);\n } catch {\n return [];\n }\n}\n\nasync function getParentAndDescendantProcessPidsAsync(ppid: number): Promise<number[]> {\n const children = new Set<number>([ppid]);\n let shouldCheckAgain = true;\n while (shouldCheckAgain) {\n const pids = await getChildrenPidsAsync([...children]);\n shouldCheckAgain = false;\n for (const pid of pids) {\n if (!children.has(pid)) {\n shouldCheckAgain = true;\n children.add(pid);\n }\n }\n }\n return [...children];\n}\n\nexport function resolveGradleCommand(job: Android.Job, command?: string): string {\n if (command) {\n return command;\n } else if (job.gradleCommand) {\n return job.gradleCommand;\n } else if (job.developmentClient) {\n return ':app:assembleDebug';\n } else if (!job.buildType) {\n return ':app:bundleRelease';\n } else if (job.buildType === Android.BuildType.APK) {\n return ':app:assembleRelease';\n } else {\n return ':app:bundleRelease';\n }\n}\n"]}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/// <reference types="bunyan" />
|
|
2
|
-
import { Job } from '@expo/eas-build-job';
|
|
2
|
+
import { Job, Metadata } from '@expo/eas-build-job';
|
|
3
3
|
import { bunyan } from '@expo/logger';
|
|
4
4
|
import { ExpoConfig } from '@expo/config';
|
|
5
|
-
export declare function configureEASUpdateAsync({ job, workingDirectory, logger, inputs, appConfig,
|
|
5
|
+
export declare function configureEASUpdateAsync({ job, workingDirectory, logger, inputs, appConfig, metadata, }: {
|
|
6
6
|
job: Job;
|
|
7
7
|
workingDirectory: string;
|
|
8
8
|
logger: bunyan;
|
|
9
9
|
inputs: {
|
|
10
10
|
runtimeVersion?: string;
|
|
11
11
|
channel?: string;
|
|
12
|
+
resolvedRuntimeVersion?: string;
|
|
12
13
|
};
|
|
13
14
|
appConfig: ExpoConfig;
|
|
14
|
-
|
|
15
|
+
metadata: Metadata | null;
|
|
15
16
|
}): Promise<void>;
|
|
16
17
|
export declare function isEASUpdateConfigured(appConfig: ExpoConfig, logger: bunyan): boolean;
|
|
@@ -2,38 +2,41 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isEASUpdateConfigured = exports.configureEASUpdateAsync = void 0;
|
|
4
4
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
5
|
-
const resolveRuntimeVersionAsync_1 = require("../../utils/resolveRuntimeVersionAsync");
|
|
6
5
|
const expoUpdates_1 = require("./ios/expoUpdates");
|
|
7
6
|
const expoUpdates_2 = require("./android/expoUpdates");
|
|
8
|
-
async function configureEASUpdateAsync({ job, workingDirectory, logger, inputs, appConfig,
|
|
7
|
+
async function configureEASUpdateAsync({ job, workingDirectory, logger, inputs, appConfig, metadata, }) {
|
|
9
8
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
10
|
-
const runtimeVersion = (_c = (_a = inputs.runtimeVersion) !== null && _a !== void 0 ? _a : (_b = job.version) === null || _b === void 0 ? void 0 : _b.runtimeVersion) !== null && _c !== void 0 ? _c :
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
logger,
|
|
16
|
-
}));
|
|
9
|
+
const runtimeVersion = (_c = (_a = inputs.runtimeVersion) !== null && _a !== void 0 ? _a : (_b = job.version) === null || _b === void 0 ? void 0 : _b.runtimeVersion) !== null && _c !== void 0 ? _c : inputs.resolvedRuntimeVersion;
|
|
10
|
+
if ((metadata === null || metadata === void 0 ? void 0 : metadata.runtimeVersion) && metadata.runtimeVersion !== runtimeVersion) {
|
|
11
|
+
logger.warn(`Runtime version from the app config evaluated on your local machine (${metadata.runtimeVersion}) does not match the one resolved here (${runtimeVersion}).`);
|
|
12
|
+
logger.warn("If you're using conditional app configs, e.g. depending on an environment variable, make sure to set the variable in eas.json or configure it with EAS Secret.");
|
|
13
|
+
}
|
|
17
14
|
const jobOrInputChannel = (_d = inputs.channel) !== null && _d !== void 0 ? _d : (_e = job.updates) === null || _e === void 0 ? void 0 : _e.channel;
|
|
18
15
|
if (isEASUpdateConfigured(appConfig, logger)) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (channel) {
|
|
22
|
-
await configureEASUpdate(job, logger, channel, workingDirectory);
|
|
23
|
-
}
|
|
24
|
-
else if (isDevelopmentClient) {
|
|
25
|
-
// NO-OP: Development clients don't need to have a channel set
|
|
16
|
+
if (jobOrInputChannel) {
|
|
17
|
+
await configureEASUpdate(job, logger, jobOrInputChannel, workingDirectory);
|
|
26
18
|
}
|
|
27
19
|
else {
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
const channel = await getChannelAsync(job, workingDirectory);
|
|
21
|
+
const isDevelopmentClient = (_f = job.developmentClient) !== null && _f !== void 0 ? _f : false;
|
|
22
|
+
if (channel) {
|
|
23
|
+
const configFile = job.platform === eas_build_job_1.Platform.ANDROID ? 'AndroidManifest.xml' : 'Expo.plist';
|
|
24
|
+
logger.info(`The channel name for EAS Update in ${configFile} is set to "${channel}"`);
|
|
25
|
+
}
|
|
26
|
+
else if (isDevelopmentClient) {
|
|
27
|
+
// NO-OP: Development clients don't need to have a channel set
|
|
30
28
|
}
|
|
31
29
|
else {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
if (job.releaseChannel !== undefined) {
|
|
31
|
+
logger.warn(`This build is configured with EAS Update however has a Classic Updates releaseChannel set instead of having an EAS Update channel.`);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const easUpdateUrl = (_h = (_g = appConfig.updates) === null || _g === void 0 ? void 0 : _g.url) !== null && _h !== void 0 ? _h : null;
|
|
35
|
+
const jobProfile = (_j = job.buildProfile) !== null && _j !== void 0 ? _j : null;
|
|
36
|
+
logger.warn(`This build has an invalid EAS Update configuration: update.url is set to "${easUpdateUrl}" in app config, but a channel is not specified${jobProfile ? '' : ` for the current build profile "${jobProfile}" in eas.json`}.`);
|
|
37
|
+
logger.warn(`- No channel will be set and EAS Update will be disabled for the build.`);
|
|
38
|
+
logger.warn(`- Run \`eas update:configure\` to set your channel in eas.json. For more details, see https://docs.expo.dev/eas-update/getting-started/#configure-your-project`);
|
|
39
|
+
}
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../../src/steps/utils/expoUpdates.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../../src/steps/utils/expoUpdates.ts"],"names":[],"mappings":"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","sourcesContent":["import { Job, Metadata, Platform } from '@expo/eas-build-job';\nimport { bunyan } from '@expo/logger';\nimport { ExpoConfig } from '@expo/config';\n\nimport {\n iosGetNativelyDefinedChannelAsync,\n iosSetChannelNativelyAsync,\n iosSetRuntimeVersionNativelyAsync,\n} from './ios/expoUpdates';\nimport {\n androidGetNativelyDefinedChannelAsync,\n androidSetChannelNativelyAsync,\n androidSetRuntimeVersionNativelyAsync,\n} from './android/expoUpdates';\n\nexport async function configureEASUpdateAsync({\n job,\n workingDirectory,\n logger,\n inputs,\n appConfig,\n metadata,\n}: {\n job: Job;\n workingDirectory: string;\n logger: bunyan;\n inputs: {\n runtimeVersion?: string;\n channel?: string;\n resolvedRuntimeVersion?: string;\n };\n appConfig: ExpoConfig;\n metadata: Metadata | null;\n}): Promise<void> {\n const runtimeVersion =\n inputs.runtimeVersion ?? job.version?.runtimeVersion ?? inputs.resolvedRuntimeVersion;\n\n if (metadata?.runtimeVersion && metadata.runtimeVersion !== runtimeVersion) {\n logger.warn(\n `Runtime version from the app config evaluated on your local machine (${metadata.runtimeVersion}) does not match the one resolved here (${runtimeVersion}).`\n );\n logger.warn(\n \"If you're using conditional app configs, e.g. depending on an environment variable, make sure to set the variable in eas.json or configure it with EAS Secret.\"\n );\n }\n\n const jobOrInputChannel = inputs.channel ?? job.updates?.channel;\n\n if (isEASUpdateConfigured(appConfig, logger)) {\n if (jobOrInputChannel) {\n await configureEASUpdate(job, logger, jobOrInputChannel, workingDirectory);\n } else {\n const channel = await getChannelAsync(job, workingDirectory);\n const isDevelopmentClient = job.developmentClient ?? false;\n\n if (channel) {\n const configFile = job.platform === Platform.ANDROID ? 'AndroidManifest.xml' : 'Expo.plist';\n logger.info(`The channel name for EAS Update in ${configFile} is set to \"${channel}\"`);\n } else if (isDevelopmentClient) {\n // NO-OP: Development clients don't need to have a channel set\n } else {\n if (job.releaseChannel !== undefined) {\n logger.warn(\n `This build is configured with EAS Update however has a Classic Updates releaseChannel set instead of having an EAS Update channel.`\n );\n } else {\n const easUpdateUrl = appConfig.updates?.url ?? null;\n const jobProfile = job.buildProfile ?? null;\n logger.warn(\n `This build has an invalid EAS Update configuration: update.url is set to \"${easUpdateUrl}\" in app config, but a channel is not specified${\n jobProfile ? '' : ` for the current build profile \"${jobProfile}\" in eas.json`\n }.`\n );\n logger.warn(`- No channel will be set and EAS Update will be disabled for the build.`);\n logger.warn(\n `- Run \\`eas update:configure\\` to set your channel in eas.json. For more details, see https://docs.expo.dev/eas-update/getting-started/#configure-your-project`\n );\n }\n }\n }\n } else {\n logger.info(`Expo Updates is not configured, skipping configuring Expo Updates.`);\n }\n\n if (runtimeVersion) {\n logger.info('Updating runtimeVersion in Expo.plist');\n await setRuntimeVersionNativelyAsync(job, runtimeVersion, workingDirectory);\n }\n}\n\nexport function isEASUpdateConfigured(appConfig: ExpoConfig, logger: bunyan): boolean {\n const rawUrl = appConfig.updates?.url;\n if (!rawUrl) {\n return false;\n }\n try {\n const url = new URL(rawUrl);\n return ['u.expo.dev', 'staging-u.expo.dev'].includes(url.hostname);\n } catch (err) {\n logger.error({ err }, `Cannot parse expo.updates.url = ${rawUrl} as URL`);\n logger.error(`Assuming EAS Update is not configured`);\n return false;\n }\n}\n\nasync function configureEASUpdate(\n job: Job,\n logger: bunyan,\n channel: string,\n workingDirectory: string\n): Promise<void> {\n const newUpdateRequestHeaders: Record<string, string> = {\n 'expo-channel-name': channel,\n };\n\n const configFile = job.platform === Platform.ANDROID ? 'AndroidManifest.xml' : 'Expo.plist';\n logger.info(\n `Setting the update request headers in '${configFile}' to '${JSON.stringify(\n newUpdateRequestHeaders\n )}'`\n );\n\n switch (job.platform) {\n case Platform.ANDROID: {\n await androidSetChannelNativelyAsync(channel, workingDirectory);\n return;\n }\n case Platform.IOS: {\n await iosSetChannelNativelyAsync(channel, workingDirectory);\n return;\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\nasync function getChannelAsync(job: Job, workingDirectory: string): Promise<string | null> {\n switch (job.platform) {\n case Platform.ANDROID: {\n return await androidGetNativelyDefinedChannelAsync(workingDirectory);\n }\n case Platform.IOS: {\n return await iosGetNativelyDefinedChannelAsync(workingDirectory);\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\nasync function setRuntimeVersionNativelyAsync(\n job: Job,\n runtimeVersion: string,\n workingDirectory: string\n): Promise<void> {\n switch (job.platform) {\n case Platform.ANDROID: {\n await androidSetRuntimeVersionNativelyAsync(runtimeVersion, workingDirectory);\n return;\n }\n case Platform.IOS: {\n await iosSetRuntimeVersionNativelyAsync(runtimeVersion, workingDirectory);\n return;\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n"]}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
/// <reference types="bunyan" />
|
|
2
2
|
import { bunyan } from '@expo/logger';
|
|
3
|
-
import { Env } from '@expo/eas-build-job';
|
|
4
3
|
import { SpawnResult } from '@expo/turtle-spawn';
|
|
5
|
-
|
|
4
|
+
import { BuildStepEnv } from '@expo/steps';
|
|
5
|
+
export declare function runFastlaneGym({ workingDir, logger, buildLogsDirectory, env, extraEnv, }: {
|
|
6
6
|
workingDir: string;
|
|
7
7
|
logger: bunyan;
|
|
8
8
|
buildLogsDirectory: string;
|
|
9
|
-
env:
|
|
9
|
+
env: BuildStepEnv;
|
|
10
|
+
extraEnv?: BuildStepEnv;
|
|
10
11
|
}): Promise<void>;
|
|
11
|
-
export declare function runFastlane(fastlaneArgs: string[], { logger, env, cwd, }?: {
|
|
12
|
+
export declare function runFastlane(fastlaneArgs: string[], { logger, env, cwd, extraEnv, }?: {
|
|
12
13
|
logger?: bunyan;
|
|
13
|
-
env?:
|
|
14
|
+
env?: BuildStepEnv;
|
|
14
15
|
cwd?: string;
|
|
16
|
+
extraEnv?: BuildStepEnv;
|
|
15
17
|
}): Promise<SpawnResult>;
|
|
@@ -7,7 +7,7 @@ exports.runFastlane = exports.runFastlaneGym = void 0;
|
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
9
9
|
const xcpretty_1 = require("./xcpretty");
|
|
10
|
-
async function runFastlaneGym({ workingDir, logger, buildLogsDirectory, env, }) {
|
|
10
|
+
async function runFastlaneGym({ workingDir, logger, buildLogsDirectory, env, extraEnv, }) {
|
|
11
11
|
const buildLogger = new xcpretty_1.XcodeBuildLogger(logger, workingDir);
|
|
12
12
|
void buildLogger.watchLogFiles(buildLogsDirectory);
|
|
13
13
|
try {
|
|
@@ -15,6 +15,7 @@ async function runFastlaneGym({ workingDir, logger, buildLogsDirectory, env, })
|
|
|
15
15
|
cwd: path_1.default.join(workingDir, 'ios'),
|
|
16
16
|
logger,
|
|
17
17
|
env,
|
|
18
|
+
extraEnv,
|
|
18
19
|
});
|
|
19
20
|
}
|
|
20
21
|
finally {
|
|
@@ -22,7 +23,7 @@ async function runFastlaneGym({ workingDir, logger, buildLogsDirectory, env, })
|
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
exports.runFastlaneGym = runFastlaneGym;
|
|
25
|
-
async function runFastlane(fastlaneArgs, { logger, env, cwd, } = {}) {
|
|
26
|
+
async function runFastlane(fastlaneArgs, { logger, env, cwd, extraEnv, } = {}) {
|
|
26
27
|
const fastlaneEnvVars = {
|
|
27
28
|
FASTLANE_DISABLE_COLORS: '1',
|
|
28
29
|
FASTLANE_SKIP_UPDATE_CHECK: '1',
|
|
@@ -30,6 +31,7 @@ async function runFastlane(fastlaneArgs, { logger, env, cwd, } = {}) {
|
|
|
30
31
|
FASTLANE_HIDE_TIMESTAMP: 'true',
|
|
31
32
|
LC_ALL: 'en_US.UTF-8',
|
|
32
33
|
...(env !== null && env !== void 0 ? env : process.env),
|
|
34
|
+
...extraEnv,
|
|
33
35
|
};
|
|
34
36
|
return await (0, turtle_spawn_1.default)('fastlane', fastlaneArgs, {
|
|
35
37
|
env: fastlaneEnvVars,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastlane.js","sourceRoot":"","sources":["../../../../src/steps/utils/ios/fastlane.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;
|
|
1
|
+
{"version":3,"file":"fastlane.js","sourceRoot":"","sources":["../../../../src/steps/utils/ios/fastlane.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,sEAAwD;AAGxD,yCAA8C;AAEvC,KAAK,UAAU,cAAc,CAAC,EACnC,UAAU,EACV,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,QAAQ,GAOT;IACC,MAAM,WAAW,GAAG,IAAI,2BAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7D,KAAK,WAAW,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE;YACzB,GAAG,EAAE,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;YACjC,MAAM;YACN,GAAG;YACH,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAzBD,wCAyBC;AAEM,KAAK,UAAU,WAAW,CAC/B,YAAsB,EACtB,EACE,MAAM,EACN,GAAG,EACH,GAAG,EACH,QAAQ,MAMN,EAAE;IAEN,MAAM,eAAe,GAAG;QACtB,uBAAuB,EAAE,GAAG;QAC5B,0BAA0B,EAAE,GAAG;QAC/B,0BAA0B,EAAE,MAAM;QAClC,uBAAuB,EAAE,MAAM;QAC/B,MAAM,EAAE,aAAa;QACrB,GAAG,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,OAAO,CAAC,GAAG,CAAC;QACvB,GAAG,QAAQ;KACZ,CAAC;IACF,OAAO,MAAM,IAAA,sBAAK,EAAC,UAAU,EAAE,YAAY,EAAE;QAC3C,GAAG,EAAE,eAAe;QACpB,MAAM;QACN,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AA5BD,kCA4BC","sourcesContent":["import path from 'path';\n\nimport { bunyan } from '@expo/logger';\nimport spawn, { SpawnResult } from '@expo/turtle-spawn';\nimport { BuildStepEnv } from '@expo/steps';\n\nimport { XcodeBuildLogger } from './xcpretty';\n\nexport async function runFastlaneGym({\n workingDir,\n logger,\n buildLogsDirectory,\n env,\n extraEnv,\n}: {\n workingDir: string;\n logger: bunyan;\n buildLogsDirectory: string;\n env: BuildStepEnv;\n extraEnv?: BuildStepEnv;\n}): Promise<void> {\n const buildLogger = new XcodeBuildLogger(logger, workingDir);\n void buildLogger.watchLogFiles(buildLogsDirectory);\n try {\n await runFastlane(['gym'], {\n cwd: path.join(workingDir, 'ios'),\n logger,\n env,\n extraEnv,\n });\n } finally {\n await buildLogger.flush();\n }\n}\n\nexport async function runFastlane(\n fastlaneArgs: string[],\n {\n logger,\n env,\n cwd,\n extraEnv,\n }: {\n logger?: bunyan;\n env?: BuildStepEnv;\n cwd?: string;\n extraEnv?: BuildStepEnv;\n } = {}\n): Promise<SpawnResult> {\n const fastlaneEnvVars = {\n FASTLANE_DISABLE_COLORS: '1',\n FASTLANE_SKIP_UPDATE_CHECK: '1',\n SKIP_SLOW_FASTLANE_WARNING: 'true',\n FASTLANE_HIDE_TIMESTAMP: 'true',\n LC_ALL: 'en_US.UTF-8',\n ...(env ?? process.env),\n ...extraEnv,\n };\n return await spawn('fastlane', fastlaneArgs, {\n env: fastlaneEnvVars,\n logger,\n cwd,\n });\n}\n"]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="bunyan" />
|
|
2
|
+
import { Platform, Job } from '@expo/eas-build-job';
|
|
3
|
+
import { ExpoConfig } from '@expo/config';
|
|
4
|
+
import { bunyan } from '@expo/logger';
|
|
2
5
|
import { BuildContext } from '../context';
|
|
3
6
|
export declare function setRuntimeVersionNativelyAsync(ctx: BuildContext<Job>, runtimeVersion: string): Promise<void>;
|
|
4
7
|
/**
|
|
@@ -15,7 +18,15 @@ export declare function setClassicReleaseChannelNativelyAsync(ctx: BuildContext<
|
|
|
15
18
|
export declare function getNativelyDefinedClassicReleaseChannelAsync(ctx: BuildContext<Job>): Promise<string | null>;
|
|
16
19
|
export declare function configureClassicExpoUpdatesAsync(ctx: BuildContext<Job>): Promise<void>;
|
|
17
20
|
export declare function configureEASExpoUpdatesAsync(ctx: BuildContext<Job>): Promise<void>;
|
|
18
|
-
export declare function configureExpoUpdatesIfInstalledAsync(ctx: BuildContext<Job
|
|
21
|
+
export declare function configureExpoUpdatesIfInstalledAsync(ctx: BuildContext<Job>, { resolvedRuntimeVersion }: {
|
|
22
|
+
resolvedRuntimeVersion: string | null;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
export declare function resolveRuntimeVersionForExpoUpdatesIfConfiguredAsync({ cwd, appConfig, platform, logger, }: {
|
|
25
|
+
cwd: string;
|
|
26
|
+
appConfig: ExpoConfig;
|
|
27
|
+
platform: Platform;
|
|
28
|
+
logger: bunyan;
|
|
29
|
+
}): Promise<string | null>;
|
|
19
30
|
export declare function getChannelAsync(ctx: BuildContext<Job>): Promise<string | null>;
|
|
20
31
|
export declare function getRuntimeVersionAsync(ctx: BuildContext<Job>): Promise<string | null>;
|
|
21
32
|
export declare function isEASUpdateConfigured(ctx: BuildContext<Job>): boolean;
|