@expo/build-tools 1.0.205 → 1.0.206
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/credentials.js +1 -2
- package/dist/android/credentials.js.map +1 -1
- package/dist/android/expoUpdates.js +5 -5
- package/dist/android/expoUpdates.js.map +1 -1
- package/dist/android/gradle.d.ts +0 -1
- package/dist/android/gradle.js +3 -4
- package/dist/android/gradle.js.map +1 -1
- package/dist/android/gradleConfig.js +1 -2
- package/dist/android/gradleConfig.js.map +1 -1
- package/dist/buildErrors/detectError.js +1 -2
- package/dist/buildErrors/detectError.js.map +1 -1
- package/dist/builders/android.js +1 -1
- package/dist/builders/android.js.map +1 -1
- package/dist/builders/common.js +1 -2
- package/dist/builders/common.js.map +1 -1
- package/dist/builders/custom.js +1 -2
- package/dist/builders/custom.js.map +1 -1
- package/dist/builders/ios.js +1 -1
- package/dist/builders/ios.js.map +1 -1
- package/dist/common/eagerBundle.d.ts +0 -1
- package/dist/common/eagerBundle.js +2 -3
- package/dist/common/eagerBundle.js.map +1 -1
- package/dist/common/easBuildInternal.d.ts +0 -1
- package/dist/common/easBuildInternal.js +2 -3
- package/dist/common/easBuildInternal.js.map +1 -1
- package/dist/common/git.d.ts +0 -1
- package/dist/common/git.js +1 -2
- package/dist/common/git.js.map +1 -1
- package/dist/common/installDependencies.js +2 -3
- package/dist/common/installDependencies.js.map +1 -1
- package/dist/common/prebuild.d.ts +0 -1
- package/dist/common/prebuild.js +1 -2
- package/dist/common/prebuild.js.map +1 -1
- package/dist/common/projectSources.js +2 -3
- package/dist/common/projectSources.js.map +1 -1
- package/dist/common/setup.js +1 -2
- package/dist/common/setup.js.map +1 -1
- package/dist/context.d.ts +0 -1
- package/dist/customBuildContext.d.ts +0 -1
- package/dist/gcs/LoggerStream.d.ts +0 -2
- package/dist/gcs/client.d.ts +0 -1
- package/dist/gcs/retry.js +1 -2
- package/dist/gcs/retry.js.map +1 -1
- package/dist/generic.js +1 -2
- package/dist/generic.js.map +1 -1
- package/dist/ios/configure.js +2 -3
- package/dist/ios/configure.js.map +1 -1
- package/dist/ios/credentials/distributionCertificate.js +2 -3
- package/dist/ios/credentials/distributionCertificate.js.map +1 -1
- package/dist/ios/credentials/provisioningProfile.d.ts +0 -1
- package/dist/ios/expoUpdates.js +5 -5
- package/dist/ios/expoUpdates.js.map +1 -1
- package/dist/ios/fastfile.js +1 -2
- package/dist/ios/fastfile.js.map +1 -1
- package/dist/ios/fastlane.d.ts +0 -1
- package/dist/ios/fastlane.js +3 -4
- package/dist/ios/fastlane.js.map +1 -1
- package/dist/ios/gymfile.js +2 -3
- package/dist/ios/gymfile.js.map +1 -1
- package/dist/ios/pod.js +1 -2
- package/dist/ios/pod.js.map +1 -1
- package/dist/ios/resign.js +1 -2
- package/dist/ios/resign.js.map +1 -1
- package/dist/ios/resolve.js +3 -4
- package/dist/ios/resolve.js.map +1 -1
- package/dist/ios/tvos.js +1 -2
- package/dist/ios/tvos.js.map +1 -1
- package/dist/ios/xcodeBuildLogs.d.ts +0 -1
- package/dist/ios/xcodeBuildLogs.js +2 -3
- package/dist/ios/xcodeBuildLogs.js.map +1 -1
- package/dist/ios/xcodeEnv.js +1 -2
- package/dist/ios/xcodeEnv.js.map +1 -1
- package/dist/ios/xcpretty.d.ts +0 -1
- package/dist/steps/easFunctionGroups.js +1 -2
- package/dist/steps/easFunctionGroups.js.map +1 -1
- package/dist/steps/easFunctions.js +1 -2
- package/dist/steps/easFunctions.js.map +1 -1
- package/dist/steps/functionGroups/build.js +1 -2
- package/dist/steps/functionGroups/build.js.map +1 -1
- package/dist/steps/functionGroups/maestroTest.js +1 -2
- package/dist/steps/functionGroups/maestroTest.js.map +1 -1
- package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js +1 -2
- package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js.map +1 -1
- package/dist/steps/functions/checkout.js +1 -2
- package/dist/steps/functions/checkout.js.map +1 -1
- package/dist/steps/functions/configureAndroidVersion.js +1 -2
- package/dist/steps/functions/configureAndroidVersion.js.map +1 -1
- package/dist/steps/functions/configureEASUpdateIfInstalled.js +1 -2
- package/dist/steps/functions/configureEASUpdateIfInstalled.js.map +1 -1
- package/dist/steps/functions/configureIosCredentials.js +1 -2
- package/dist/steps/functions/configureIosCredentials.js.map +1 -1
- package/dist/steps/functions/configureIosVersion.js +1 -2
- package/dist/steps/functions/configureIosVersion.js.map +1 -1
- package/dist/steps/functions/createSubmissionEntity.js +1 -2
- package/dist/steps/functions/createSubmissionEntity.js.map +1 -1
- package/dist/steps/functions/downloadArtifact.d.ts +0 -1
- package/dist/steps/functions/downloadArtifact.js +2 -3
- package/dist/steps/functions/downloadArtifact.js.map +1 -1
- package/dist/steps/functions/downloadBuild.d.ts +0 -1
- package/dist/steps/functions/downloadBuild.js +2 -3
- package/dist/steps/functions/downloadBuild.js.map +1 -1
- package/dist/steps/functions/eagerBundle.js +1 -2
- package/dist/steps/functions/eagerBundle.js.map +1 -1
- package/dist/steps/functions/findAndUploadBuildArtifacts.js +1 -2
- package/dist/steps/functions/findAndUploadBuildArtifacts.js.map +1 -1
- package/dist/steps/functions/generateGymfileFromTemplate.js +1 -2
- package/dist/steps/functions/generateGymfileFromTemplate.js.map +1 -1
- package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js +1 -2
- package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js.map +1 -1
- package/dist/steps/functions/injectAndroidCredentials.js +1 -2
- package/dist/steps/functions/injectAndroidCredentials.js.map +1 -1
- package/dist/steps/functions/installMaestro.js +14 -16
- package/dist/steps/functions/installMaestro.js.map +1 -1
- package/dist/steps/functions/installNodeModules.js +2 -3
- package/dist/steps/functions/installNodeModules.js.map +1 -1
- package/dist/steps/functions/installPods.js +1 -2
- package/dist/steps/functions/installPods.js.map +1 -1
- package/dist/steps/functions/internalMaestroTest.js +2 -3
- package/dist/steps/functions/internalMaestroTest.js.map +1 -1
- package/dist/steps/functions/prebuild.js +1 -2
- package/dist/steps/functions/prebuild.js.map +1 -1
- package/dist/steps/functions/repack.d.ts +0 -1
- package/dist/steps/functions/repack.js +3 -4
- package/dist/steps/functions/repack.js.map +1 -1
- package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js +1 -2
- package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js.map +1 -1
- package/dist/steps/functions/resolveBuildConfig.d.ts +0 -1
- package/dist/steps/functions/resolveBuildConfig.js +2 -3
- package/dist/steps/functions/resolveBuildConfig.js.map +1 -1
- package/dist/steps/functions/runFastlane.js +1 -2
- package/dist/steps/functions/runFastlane.js.map +1 -1
- package/dist/steps/functions/runGradle.js +1 -2
- package/dist/steps/functions/runGradle.js.map +1 -1
- package/dist/steps/functions/sendSlackMessage.js +1 -2
- package/dist/steps/functions/sendSlackMessage.js.map +1 -1
- package/dist/steps/functions/startAndroidEmulator.js +1 -2
- package/dist/steps/functions/startAndroidEmulator.js.map +1 -1
- package/dist/steps/functions/startIosSimulator.js +1 -2
- package/dist/steps/functions/startIosSimulator.js.map +1 -1
- package/dist/steps/functions/uploadArtifact.js +1 -2
- package/dist/steps/functions/uploadArtifact.js.map +1 -1
- package/dist/steps/functions/useNpmToken.js +1 -2
- package/dist/steps/functions/useNpmToken.js.map +1 -1
- package/dist/steps/utils/android/expoUpdates.js +4 -4
- package/dist/steps/utils/android/expoUpdates.js.map +1 -1
- package/dist/steps/utils/android/gradle.d.ts +0 -1
- package/dist/steps/utils/android/gradle.js +2 -3
- package/dist/steps/utils/android/gradle.js.map +1 -1
- package/dist/steps/utils/android/gradleConfig.d.ts +0 -1
- package/dist/steps/utils/android/gradleConfig.js +2 -3
- package/dist/steps/utils/android/gradleConfig.js.map +1 -1
- package/dist/steps/utils/expoUpdates.d.ts +0 -1
- package/dist/steps/utils/expoUpdates.js +2 -3
- package/dist/steps/utils/expoUpdates.js.map +1 -1
- package/dist/steps/utils/ios/configure.d.ts +0 -1
- package/dist/steps/utils/ios/configure.js +3 -4
- package/dist/steps/utils/ios/configure.js.map +1 -1
- package/dist/steps/utils/ios/credentials/distributionCertificate.js +2 -3
- package/dist/steps/utils/ios/credentials/distributionCertificate.js.map +1 -1
- package/dist/steps/utils/ios/credentials/keychain.d.ts +0 -1
- package/dist/steps/utils/ios/credentials/manager.d.ts +0 -1
- package/dist/steps/utils/ios/credentials/provisioningProfile.d.ts +0 -2
- package/dist/steps/utils/ios/expoUpdates.js +4 -4
- package/dist/steps/utils/ios/expoUpdates.js.map +1 -1
- package/dist/steps/utils/ios/fastlane.d.ts +0 -1
- package/dist/steps/utils/ios/fastlane.js +2 -3
- package/dist/steps/utils/ios/fastlane.js.map +1 -1
- package/dist/steps/utils/ios/resolve.js +2 -3
- package/dist/steps/utils/ios/resolve.js.map +1 -1
- package/dist/steps/utils/ios/tvos.js +1 -2
- package/dist/steps/utils/ios/tvos.js.map +1 -1
- package/dist/steps/utils/ios/xcpretty.d.ts +0 -1
- package/dist/utils/AndroidEmulatorUtils.d.ts +0 -2
- package/dist/utils/IosSimulatorUtils.d.ts +0 -1
- package/dist/utils/appConfig.d.ts +0 -1
- package/dist/utils/appConfig.js +1 -2
- package/dist/utils/appConfig.js.map +1 -1
- package/dist/utils/artifacts.d.ts +0 -1
- package/dist/utils/artifacts.js +5 -5
- package/dist/utils/artifacts.js.map +1 -1
- package/dist/utils/diffFingerprintsAsync.d.ts +0 -1
- package/dist/utils/diffFingerprintsAsync.js +1 -2
- package/dist/utils/diffFingerprintsAsync.js.map +1 -1
- package/dist/utils/environmentSecrets.js +1 -2
- package/dist/utils/environmentSecrets.js.map +1 -1
- package/dist/utils/expoFingerprintCli.js +3 -3
- package/dist/utils/expoFingerprintCli.js.map +1 -1
- package/dist/utils/expoUpdates.d.ts +0 -1
- package/dist/utils/expoUpdates.js +9 -10
- package/dist/utils/expoUpdates.js.map +1 -1
- package/dist/utils/expoUpdatesCli.js +2 -2
- package/dist/utils/expoUpdatesCli.js.map +1 -1
- package/dist/utils/files.js +2 -3
- package/dist/utils/files.js.map +1 -1
- package/dist/utils/findMaestroPathsFlowsToExecuteAsync.d.ts +0 -1
- package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js +1 -2
- package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js.map +1 -1
- package/dist/utils/fingerprint.js +1 -2
- package/dist/utils/fingerprint.js.map +1 -1
- package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.d.ts +0 -1
- package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js +1 -1
- package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js.map +1 -1
- package/dist/utils/hooks.js +2 -2
- package/dist/utils/hooks.js.map +1 -1
- package/dist/utils/npmrc.d.ts +0 -1
- package/dist/utils/npmrc.js +1 -2
- package/dist/utils/npmrc.js.map +1 -1
- package/dist/utils/outputs.d.ts +0 -1
- package/dist/utils/outputs.js +2 -3
- package/dist/utils/outputs.js.map +1 -1
- package/dist/utils/packageManager.js +6 -6
- package/dist/utils/packageManager.js.map +1 -1
- package/dist/utils/prepareBuildExecutable.js +1 -2
- package/dist/utils/prepareBuildExecutable.js.map +1 -1
- package/dist/utils/processes.js +1 -2
- package/dist/utils/processes.js.map +1 -1
- package/dist/utils/project.js +3 -4
- package/dist/utils/project.js.map +1 -1
- package/dist/utils/promiseRetryWithCondition.js +1 -2
- package/dist/utils/promiseRetryWithCondition.js.map +1 -1
- package/dist/utils/resolveRuntimeVersionAsync.d.ts +0 -1
- package/dist/utils/resolveRuntimeVersionAsync.js +1 -2
- package/dist/utils/resolveRuntimeVersionAsync.js.map +1 -1
- package/dist/utils/retry.d.ts +0 -1
- package/dist/utils/retry.js +2 -3
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/retryOnDNSFailure.js +2 -3
- package/dist/utils/retryOnDNSFailure.js.map +1 -1
- package/dist/utils/turtleFetch.d.ts +0 -1
- package/dist/utils/turtleFetch.js +2 -2
- package/dist/utils/turtleFetch.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startAndroidEmulator.js","sourceRoot":"","sources":["../../../src/steps/functions/startAndroidEmulator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"startAndroidEmulator.js","sourceRoot":"","sources":["../../../src/steps/functions/startAndroidEmulator.ts"],"names":[],"mappings":"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","sourcesContent":["import { BuildFunction, BuildStepInput, BuildStepInputValueTypeName } from '@expo/steps';\nimport spawn from '@expo/turtle-spawn';\nimport { asyncResult } from '@expo/results';\n\nimport { retryAsync } from '../../utils/retry';\nimport {\n AndroidDeviceName,\n AndroidEmulatorUtils,\n AndroidVirtualDeviceName,\n} from '../../utils/AndroidEmulatorUtils';\n\nexport function createStartAndroidEmulatorBuildFunction(): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: 'start_android_emulator',\n name: 'Start Android Emulator',\n inputProviders: [\n BuildStepInput.createProvider({\n id: 'device_name',\n required: false,\n defaultValue: 'EasAndroidDevice01',\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'device_identifier',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'system_image_package',\n required: false,\n defaultValue: AndroidEmulatorUtils.defaultSystemImagePackage,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'count',\n required: false,\n defaultValue: 1,\n allowedValueTypeName: BuildStepInputValueTypeName.NUMBER,\n }),\n ],\n fn: async ({ logger }, { inputs, env }) => {\n try {\n const availableDevices = await AndroidEmulatorUtils.getAvailableDevicesAsync({ env });\n logger.info(`Available Android devices:\\n- ${availableDevices.join(`\\n- `)}`);\n } catch (error) {\n logger.info('Failed to list available Android devices.', error);\n } finally {\n logger.info('');\n }\n\n const deviceName = `${inputs.device_name.value}` as AndroidVirtualDeviceName;\n const systemImagePackage = `${inputs.system_image_package.value}`;\n // We can cast because allowedValueTypeName validated this is a string.\n const deviceIdentifier = inputs.device_identifier.value as AndroidDeviceName | undefined;\n\n logger.info('Making sure system image is installed');\n await retryAsync(\n async () => {\n await spawn('sdkmanager', [systemImagePackage], {\n env,\n logger,\n });\n },\n {\n logger,\n retryOptions: {\n retries: 3, // Retry 3 times\n retryIntervalMs: 1_000,\n },\n }\n );\n\n logger.info('Creating emulator device');\n await AndroidEmulatorUtils.createAsync({\n deviceName,\n systemImagePackage,\n deviceIdentifier: deviceIdentifier ?? null,\n env,\n });\n\n logger.info('Starting emulator device');\n const { emulatorPromise, serialId } = await AndroidEmulatorUtils.startAsync({\n deviceName,\n env,\n });\n await AndroidEmulatorUtils.waitForReadyAsync({\n env,\n serialId,\n });\n logger.info(`${deviceName} is ready.`);\n\n const count = Number(inputs.count.value ?? 1);\n if (count > 1) {\n logger.info(`Requested ${count} emulators, shutting down ${deviceName} for cloning.`);\n await spawn('adb', ['-s', serialId, 'shell', 'reboot', '-p'], {\n logger,\n env,\n });\n // Waiting for source emulator to shutdown.\n // We don't care about resolved/rejected.\n await asyncResult(emulatorPromise);\n\n for (let i = 0; i < count; i++) {\n const cloneIdentifier = `eas-simulator-${i + 1}` as AndroidVirtualDeviceName;\n logger.info(`Cloning ${deviceName} to ${cloneIdentifier}...`);\n await AndroidEmulatorUtils.cloneAsync({\n sourceDeviceName: deviceName,\n destinationDeviceName: cloneIdentifier,\n env,\n logger,\n });\n\n logger.info('Starting emulator device');\n const { serialId } = await AndroidEmulatorUtils.startAsync({\n deviceName: cloneIdentifier,\n env,\n });\n\n logger.info('Waiting for emulator to become ready');\n await AndroidEmulatorUtils.waitForReadyAsync({\n serialId,\n env,\n });\n\n logger.info(`${cloneIdentifier} is ready.`);\n }\n }\n },\n });\n}\n"]}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createStartIosSimulatorBuildFunction =
|
|
6
|
+
exports.createStartIosSimulatorBuildFunction = createStartIosSimulatorBuildFunction;
|
|
7
7
|
const steps_1 = require("@expo/steps");
|
|
8
8
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
9
9
|
const lodash_1 = require("lodash");
|
|
@@ -87,7 +87,6 @@ function createStartIosSimulatorBuildFunction() {
|
|
|
87
87
|
},
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
|
-
exports.createStartIosSimulatorBuildFunction = createStartIosSimulatorBuildFunction;
|
|
91
90
|
async function findMostGenericIphoneUuidAsync({ env, }) {
|
|
92
91
|
var _a;
|
|
93
92
|
const availableSimulatorDevices = await IosSimulatorUtils_1.IosSimulatorUtils.getAvailableDevicesAsync({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startIosSimulator.js","sourceRoot":"","sources":["../../../src/steps/functions/startIosSimulator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"startIosSimulator.js","sourceRoot":"","sources":["../../../src/steps/functions/startIosSimulator.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BuildFunction,\n BuildStepEnv,\n BuildStepInput,\n BuildStepInputValueTypeName,\n} from '@expo/steps';\nimport spawn from '@expo/turtle-spawn';\nimport { minBy } from 'lodash';\n\nimport {\n IosSimulatorName,\n IosSimulatorUtils,\n IosSimulatorUuid,\n} from '../../utils/IosSimulatorUtils';\n\nexport function createStartIosSimulatorBuildFunction(): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: 'start_ios_simulator',\n name: 'Start iOS Simulator',\n inputProviders: [\n BuildStepInput.createProvider({\n id: 'device_identifier',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'count',\n required: false,\n defaultValue: 1,\n allowedValueTypeName: BuildStepInputValueTypeName.NUMBER,\n }),\n ],\n fn: async ({ logger }, { inputs, env }) => {\n try {\n const availableDevices = await IosSimulatorUtils.getAvailableDevicesAsync({\n env,\n filter: 'available',\n });\n logger.info(\n `Available Simulator devices:\\n- ${availableDevices\n .map((device) => device.displayName)\n .join(`\\n- `)}`\n );\n } catch (error) {\n logger.info('Failed to list available Simulator devices.', error);\n } finally {\n logger.info('');\n }\n\n const deviceIdentifierInput = inputs.device_identifier.value?.toString() as\n | IosSimulatorUuid\n | IosSimulatorName\n | undefined;\n const originalDeviceIdentifier =\n deviceIdentifierInput ?? (await findMostGenericIphoneUuidAsync({ env }));\n\n if (!originalDeviceIdentifier) {\n throw new Error('Could not find an iPhone among available simulator devices.');\n }\n\n const { udid } = await IosSimulatorUtils.startAsync({\n deviceIdentifier: originalDeviceIdentifier,\n env,\n });\n\n await IosSimulatorUtils.waitForReadyAsync({ udid, env });\n\n logger.info('');\n\n const device = await IosSimulatorUtils.getDeviceAsync({ udid, env });\n const formattedDevice = device?.displayName ?? originalDeviceIdentifier;\n logger.info(`${formattedDevice} is ready.`);\n\n const count = Number(inputs.count.value ?? 1);\n if (count > 1) {\n logger.info(`Requested ${count} Simulators, shutting down ${formattedDevice} for cloning.`);\n await spawn('xcrun', ['simctl', 'shutdown', originalDeviceIdentifier], {\n logger,\n env,\n });\n\n for (let i = 0; i < count; i++) {\n const cloneDeviceName = `eas-simulator-${i + 1}` as IosSimulatorName;\n logger.info(`Cloning ${formattedDevice} to ${cloneDeviceName}...`);\n\n await IosSimulatorUtils.cloneAsync({\n sourceDeviceIdentifier: originalDeviceIdentifier,\n destinationDeviceName: cloneDeviceName,\n env,\n });\n\n const { udid: cloneUdid } = await IosSimulatorUtils.startAsync({\n deviceIdentifier: cloneDeviceName,\n env,\n });\n\n await IosSimulatorUtils.waitForReadyAsync({\n udid: cloneUdid,\n env,\n });\n\n logger.info(`${cloneDeviceName} is ready.`);\n logger.info('');\n }\n }\n },\n });\n}\n\nasync function findMostGenericIphoneUuidAsync({\n env,\n}: {\n env: BuildStepEnv;\n}): Promise<IosSimulatorUuid | null> {\n const availableSimulatorDevices = await IosSimulatorUtils.getAvailableDevicesAsync({\n env,\n filter: 'available',\n });\n const availableIphones = availableSimulatorDevices.filter((device) =>\n device.name.startsWith('iPhone')\n );\n // It's funny, but it works.\n const iphoneWithShortestName = minBy(availableIphones, (device) => device.name.length);\n return iphoneWithShortestName?.udid ?? null;\n}\n"]}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createUploadArtifactBuildFunction =
|
|
6
|
+
exports.createUploadArtifactBuildFunction = createUploadArtifactBuildFunction;
|
|
7
7
|
const assert_1 = __importDefault(require("assert"));
|
|
8
8
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
9
9
|
const steps_1 = require("@expo/steps");
|
|
@@ -112,7 +112,6 @@ function createUploadArtifactBuildFunction(ctx) {
|
|
|
112
112
|
},
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
|
-
exports.createUploadArtifactBuildFunction = createUploadArtifactBuildFunction;
|
|
116
115
|
/**
|
|
117
116
|
* Initially, upload_artifact supported application-archive and build-artifact.
|
|
118
117
|
* Then, mistakenly, support for it was removed in favor of supporting ManagedArtifactType
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadArtifact.js","sourceRoot":"","sources":["../../../src/steps/functions/uploadArtifact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uploadArtifact.js","sourceRoot":"","sources":["../../../src/steps/functions/uploadArtifact.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\n\nimport { GenericArtifactType, Job, ManagedArtifactType } from '@expo/eas-build-job';\nimport { BuildFunction, BuildStepInput, BuildStepInputValueTypeName } from '@expo/steps';\n\nimport { CustomBuildContext } from '../../customBuildContext';\nimport { FindArtifactsError, findArtifacts } from '../../utils/artifacts';\n\nconst artifactTypeInputToManagedArtifactType: Record<string, ManagedArtifactType | undefined> = {\n 'application-archive': ManagedArtifactType.APPLICATION_ARCHIVE,\n 'build-artifact': ManagedArtifactType.BUILD_ARTIFACTS,\n};\n\nexport function createUploadArtifactBuildFunction(ctx: CustomBuildContext): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: 'upload_artifact',\n name: 'Upload artifact',\n inputProviders: [\n BuildStepInput.createProvider({\n id: 'type',\n allowedValues: [\n ManagedArtifactType.APPLICATION_ARCHIVE,\n ManagedArtifactType.BUILD_ARTIFACTS,\n ...Object.keys(artifactTypeInputToManagedArtifactType),\n ...Object.values(GenericArtifactType),\n ],\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'key',\n defaultValue: '',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'name',\n defaultValue: '',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n /**\n * path inputs expects a list of newline-delimited search paths.\n * Valid examples include:\n * - path: app/artifact.app\n * - path: app/*.app\n * - path: |\n * assets/*.png\n * assets/*.jpg\n * public/another-photo.jpg\n */\n BuildStepInput.createProvider({\n id: 'path',\n required: true,\n allowedValueTypeName: BuildStepInputValueTypeName.STRING,\n }),\n BuildStepInput.createProvider({\n id: 'ignore_error',\n required: false,\n allowedValueTypeName: BuildStepInputValueTypeName.BOOLEAN,\n }),\n ],\n fn: async ({ logger, global }, { inputs }) => {\n assert(inputs.path.value, 'Path input cannot be empty.');\n\n const artifactSearchPaths = inputs.path.value\n .toString()\n .split('\\n')\n // It's easy to get an empty line with YAML\n .filter((entry) => entry);\n\n const artifactsSearchResults = await Promise.allSettled(\n artifactSearchPaths.map((patternOrPath) =>\n findArtifacts({\n rootDir: global.projectTargetDirectory,\n patternOrPath,\n // We're logging the error ourselves.\n logger: null,\n })\n )\n );\n\n const artifactPaths = artifactsSearchResults.flatMap((result, index) => {\n if (result.status === 'fulfilled') {\n logger.info(\n `Found ${result.value.length} paths matching \"${artifactSearchPaths[index]}\".`\n );\n return result.value;\n }\n\n if (result.status === 'rejected' && result.reason instanceof FindArtifactsError) {\n logger.warn(`Did not find any paths matching \"${artifactSearchPaths[index]}. Ignoring.`);\n return [];\n }\n\n throw result.reason;\n });\n\n const artifact = {\n type: parseArtifactTypeInput({\n platform: ctx.job.platform,\n inputValue: `${inputs.type.value ?? ''}`,\n }),\n paths: artifactPaths,\n name: (inputs.name.value || inputs.key.value) as string,\n };\n\n try {\n await ctx.runtimeApi.uploadArtifact({\n artifact,\n logger,\n });\n } catch (error) {\n if (inputs.ignore_error.value) {\n logger.error(`Failed to upload ${artifact.type}. Ignoring error.`, error);\n // Ignoring error.\n return;\n }\n\n throw error;\n }\n },\n });\n}\n\n/**\n * Initially, upload_artifact supported application-archive and build-artifact.\n * Then, mistakenly, support for it was removed in favor of supporting ManagedArtifactType\n * values. This makes sure we support all:\n * - kebab-case managed artifact types (the original)\n * - snake-caps-case managed artifact types (the mistake)\n * - generic artifact types.\n */\nfunction parseArtifactTypeInput({\n inputValue,\n platform,\n}: {\n inputValue: string;\n platform: Job['platform'];\n}): GenericArtifactType | ManagedArtifactType {\n if (!inputValue) {\n // In build jobs the default artifact type is application-archive.\n return platform ? ManagedArtifactType.APPLICATION_ARCHIVE : GenericArtifactType.OTHER;\n }\n\n // Step's allowedValues ensures input is either\n // a key of artifactTypeInputToManagedArtifactType\n // or a value of an artifact type.\n const translatedManagedArtifactType = artifactTypeInputToManagedArtifactType[inputValue];\n if (translatedManagedArtifactType) {\n return translatedManagedArtifactType;\n }\n\n return inputValue as GenericArtifactType | ManagedArtifactType;\n}\n"]}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createSetUpNpmrcBuildFunction =
|
|
6
|
+
exports.createSetUpNpmrcBuildFunction = createSetUpNpmrcBuildFunction;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
const steps_1 = require("@expo/steps");
|
|
@@ -38,5 +38,4 @@ function createSetUpNpmrcBuildFunction() {
|
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
exports.createSetUpNpmrcBuildFunction = createSetUpNpmrcBuildFunction;
|
|
42
41
|
//# sourceMappingURL=useNpmToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNpmToken.js","sourceRoot":"","sources":["../../../src/steps/functions/useNpmToken.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useNpmToken.js","sourceRoot":"","sources":["../../../src/steps/functions/useNpmToken.ts"],"names":[],"mappings":";;;;;AASA,sEA+BC;AAxCD,gDAAwB;AAExB,wDAA0B;AAC1B,uCAA4C;AAE5C,+DAAiE;AAEjE,MAAM,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;AAE7E,SAAgB,6BAA6B;IAC3C,OAAO,IAAI,qBAAa,CAAC;QACvB,SAAS,EAAE,KAAK;QAChB,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,eAAe;QACrB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YAC3B,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;gBAC3E,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;gBACpF,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,MAAM,aAAa,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;oBACrE,MAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;oBACtF,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC3B,MAAM,kBAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,oCAAmB,EAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC5F,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CACT,mBAAmB,cAAI,CAAC,QAAQ,CAC9B,OAAO,CAAC,MAAM,CAAC,sBAAsB,EACrC,gBAAgB,CACjB,EAAE,CACJ,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import path from 'path';\n\nimport fs from 'fs-extra';\nimport { BuildFunction } from '@expo/steps';\n\nimport { findPackagerRootDir } from '../../utils/packageManager';\n\nconst NPMRC_TEMPLATE_PATH = path.join(__dirname, '../../../templates/npmrc');\n\nexport function createSetUpNpmrcBuildFunction(): BuildFunction {\n return new BuildFunction({\n namespace: 'eas',\n id: 'use_npm_token',\n name: 'Use NPM_TOKEN',\n fn: async (stepCtx, { env }) => {\n const { logger } = stepCtx;\n if (env.NPM_TOKEN) {\n logger.info('We detected that you set the NPM_TOKEN environment variable');\n const projectNpmrcPath = path.join(stepCtx.global.projectTargetDirectory, '.npmrc');\n if (await fs.pathExists(projectNpmrcPath)) {\n logger.info('.npmrc already exists in your project directory, skipping generation');\n } else {\n const npmrcContents = await fs.readFile(NPMRC_TEMPLATE_PATH, 'utf8');\n logger.info('Creating .npmrc in your project directory with the following contents:');\n logger.info(npmrcContents);\n await fs.copy(NPMRC_TEMPLATE_PATH, projectNpmrcPath);\n }\n } else {\n const projectNpmrcPath = path.join(findPackagerRootDir(stepCtx.workingDirectory), '.npmrc');\n if (await fs.pathExists(projectNpmrcPath)) {\n logger.info(\n `.npmrc found at ${path.relative(\n stepCtx.global.projectTargetDirectory,\n projectNpmrcPath\n )}`\n );\n }\n }\n },\n });\n}\n"]}
|
|
@@ -3,7 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.AndroidMetadataName = void 0;
|
|
7
|
+
exports.androidSetChannelNativelyAsync = androidSetChannelNativelyAsync;
|
|
8
|
+
exports.androidSetRuntimeVersionNativelyAsync = androidSetRuntimeVersionNativelyAsync;
|
|
9
|
+
exports.androidGetNativelyDefinedChannelAsync = androidGetNativelyDefinedChannelAsync;
|
|
7
10
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
8
11
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
12
|
var AndroidMetadataName;
|
|
@@ -26,7 +29,6 @@ async function androidSetChannelNativelyAsync(channel, workingDirectory) {
|
|
|
26
29
|
}), 'value');
|
|
27
30
|
await config_plugins_1.AndroidConfig.Manifest.writeAndroidManifestAsync(manifestPath, androidManifest);
|
|
28
31
|
}
|
|
29
|
-
exports.androidSetChannelNativelyAsync = androidSetChannelNativelyAsync;
|
|
30
32
|
async function androidSetRuntimeVersionNativelyAsync(runtimeVersion, workingDirectory) {
|
|
31
33
|
const manifestPath = await config_plugins_1.AndroidConfig.Paths.getAndroidManifestAsync(workingDirectory);
|
|
32
34
|
if (!(await fs_extra_1.default.pathExists(manifestPath))) {
|
|
@@ -37,7 +39,6 @@ async function androidSetRuntimeVersionNativelyAsync(runtimeVersion, workingDire
|
|
|
37
39
|
config_plugins_1.AndroidConfig.Manifest.addMetaDataItemToMainApplication(mainApp, AndroidMetadataName.RUNTIME_VERSION, runtimeVersion, 'value');
|
|
38
40
|
await config_plugins_1.AndroidConfig.Manifest.writeAndroidManifestAsync(manifestPath, androidManifest);
|
|
39
41
|
}
|
|
40
|
-
exports.androidSetRuntimeVersionNativelyAsync = androidSetRuntimeVersionNativelyAsync;
|
|
41
42
|
async function androidGetNativelyDefinedChannelAsync(workingDirectory) {
|
|
42
43
|
var _a;
|
|
43
44
|
const manifestPath = await config_plugins_1.AndroidConfig.Paths.getAndroidManifestAsync(workingDirectory);
|
|
@@ -54,5 +55,4 @@ async function androidGetNativelyDefinedChannelAsync(workingDirectory) {
|
|
|
54
55
|
throw new Error(`Failed to parse ${AndroidMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY} from AndroidManifest.xml: ${err.message}`);
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
|
-
exports.androidGetNativelyDefinedChannelAsync = androidGetNativelyDefinedChannelAsync;
|
|
58
58
|
//# sourceMappingURL=expoUpdates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../../../src/steps/utils/android/expoUpdates.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../../../src/steps/utils/android/expoUpdates.ts"],"names":[],"mappings":"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","sourcesContent":["import { AndroidConfig } from '@expo/config-plugins';\nimport fs from 'fs-extra';\n\nexport enum AndroidMetadataName {\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY',\n RELEASE_CHANNEL = 'expo.modules.updates.EXPO_RELEASE_CHANNEL',\n RUNTIME_VERSION = 'expo.modules.updates.EXPO_RUNTIME_VERSION',\n}\n\nexport async function androidSetChannelNativelyAsync(\n channel: string,\n workingDirectory: string\n): Promise<void> {\n const manifestPath = await AndroidConfig.Paths.getAndroidManifestAsync(workingDirectory);\n\n if (!(await fs.pathExists(manifestPath))) {\n throw new Error(`Couldn't find Android manifest at ${manifestPath}`);\n }\n\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(manifestPath);\n const mainApp = AndroidConfig.Manifest.getMainApplicationOrThrow(androidManifest);\n const stringifiedUpdatesRequestHeaders = AndroidConfig.Manifest.getMainApplicationMetaDataValue(\n androidManifest,\n AndroidMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY\n );\n AndroidConfig.Manifest.addMetaDataItemToMainApplication(\n mainApp,\n AndroidMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY,\n JSON.stringify({\n ...JSON.parse(stringifiedUpdatesRequestHeaders ?? '{}'),\n 'expo-channel-name': channel,\n }),\n 'value'\n );\n await AndroidConfig.Manifest.writeAndroidManifestAsync(manifestPath, androidManifest);\n}\n\nexport async function androidSetRuntimeVersionNativelyAsync(\n runtimeVersion: string,\n workingDirectory: string\n): Promise<void> {\n const manifestPath = await AndroidConfig.Paths.getAndroidManifestAsync(workingDirectory);\n\n if (!(await fs.pathExists(manifestPath))) {\n throw new Error(`Couldn't find Android manifest at ${manifestPath}`);\n }\n\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(manifestPath);\n const mainApp = AndroidConfig.Manifest.getMainApplicationOrThrow(androidManifest);\n AndroidConfig.Manifest.addMetaDataItemToMainApplication(\n mainApp,\n AndroidMetadataName.RUNTIME_VERSION,\n runtimeVersion,\n 'value'\n );\n await AndroidConfig.Manifest.writeAndroidManifestAsync(manifestPath, androidManifest);\n}\n\nexport async function androidGetNativelyDefinedChannelAsync(\n workingDirectory: string\n): Promise<string | null> {\n const manifestPath = await AndroidConfig.Paths.getAndroidManifestAsync(workingDirectory);\n\n if (!(await fs.pathExists(manifestPath))) {\n return null;\n }\n\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(manifestPath);\n const stringifiedUpdatesRequestHeaders = AndroidConfig.Manifest.getMainApplicationMetaDataValue(\n androidManifest,\n AndroidMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY\n );\n try {\n const updatesRequestHeaders = JSON.parse(stringifiedUpdatesRequestHeaders ?? '{}');\n return updatesRequestHeaders['expo-channel-name'] ?? null;\n } catch (err: any) {\n throw new Error(\n `Failed to parse ${AndroidMetadataName.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY} from AndroidManifest.xml: ${err.message}`\n );\n }\n}\n"]}
|
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.runGradleCommand = runGradleCommand;
|
|
7
|
+
exports.resolveGradleCommand = resolveGradleCommand;
|
|
7
8
|
const assert_1 = __importDefault(require("assert"));
|
|
8
9
|
const path_1 = __importDefault(require("path"));
|
|
9
10
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
@@ -31,7 +32,6 @@ async function runGradleCommand({ logger, gradleCommand, androidDir, env, extraE
|
|
|
31
32
|
}
|
|
32
33
|
await spawnPromise;
|
|
33
34
|
}
|
|
34
|
-
exports.runGradleCommand = runGradleCommand;
|
|
35
35
|
/**
|
|
36
36
|
* OOM Killer sometimes kills worker server while build is exceeding memory limits.
|
|
37
37
|
* `oom_score_adj` is a value between -1000 and 1000 and it defaults to 0.
|
|
@@ -109,5 +109,4 @@ function resolveGradleCommand(job, command) {
|
|
|
109
109
|
return ':app:bundleRelease';
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
exports.resolveGradleCommand = resolveGradleCommand;
|
|
113
112
|
//# sourceMappingURL=gradle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradle.js","sourceRoot":"","sources":["../../../../src/steps/utils/android/gradle.ts"],"names":[],"mappings":"
|
|
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';\nimport path from 'path';\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 const verboseFlag = env['EAS_VERBOSE'] === '1' ? '--info' : '';\n\n logger.info(`Running 'gradlew ${gradleCommand} ${verboseFlag}' in ${androidDir}`);\n await fs.chmod(path.join(androidDir, 'gradlew'), 0o755);\n const spawnPromise = spawn('bash', ['-c', `./gradlew ${gradleCommand} ${verboseFlag}`], {\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,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="bunyan" />
|
|
2
1
|
import { bunyan } from '@expo/logger';
|
|
3
2
|
export declare function injectCredentialsGradleConfig(logger: bunyan, workingDir: string): Promise<void>;
|
|
4
3
|
export declare function injectConfigureVersionGradleConfig(logger: bunyan, workingDir: string, { versionCode, versionName }: {
|
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.injectCredentialsGradleConfig = injectCredentialsGradleConfig;
|
|
7
|
+
exports.injectConfigureVersionGradleConfig = injectConfigureVersionGradleConfig;
|
|
7
8
|
const path_1 = __importDefault(require("path"));
|
|
8
9
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
9
10
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
@@ -19,7 +20,6 @@ async function injectCredentialsGradleConfig(logger, workingDir) {
|
|
|
19
20
|
await addApplyInjectCredentialsConfigToBuildGradle(workingDir);
|
|
20
21
|
logger.info('Signing config injected');
|
|
21
22
|
}
|
|
22
|
-
exports.injectCredentialsGradleConfig = injectCredentialsGradleConfig;
|
|
23
23
|
async function injectConfigureVersionGradleConfig(logger, workingDir, { versionCode, versionName }) {
|
|
24
24
|
logger.info('Injecting version config into build.gradle');
|
|
25
25
|
if (versionCode) {
|
|
@@ -33,7 +33,6 @@ async function injectConfigureVersionGradleConfig(logger, workingDir, { versionC
|
|
|
33
33
|
await addApplyConfigureVersionConfigToBuildGradle(workingDir);
|
|
34
34
|
logger.info('Version config injected');
|
|
35
35
|
}
|
|
36
|
-
exports.injectConfigureVersionGradleConfig = injectConfigureVersionGradleConfig;
|
|
37
36
|
async function deleteEasBuildInjectCredentialsGradle(workingDir) {
|
|
38
37
|
const targetPath = getEasBuildInjectCredentialsGradlePath(workingDir);
|
|
39
38
|
await fs_extra_1.default.remove(targetPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradleConfig.js","sourceRoot":"","sources":["../../../../src/steps/utils/android/gradleConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gradleConfig.js","sourceRoot":"","sources":["../../../../src/steps/utils/android/gradleConfig.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\n\nimport { AndroidConfig } from '@expo/config-plugins';\nimport { bunyan } from '@expo/logger';\nimport fs from 'fs-extra';\nimport templateFile from '@expo/template-file';\n\nconst EAS_BUILD_INJECT_CREDENTIALS_GRADLE_TEMPLATE_PATH = path.join(\n __dirname,\n '../../../../templates/eas-build-inject-android-credentials.gradle'\n);\nconst EAS_BUILD_CONFIGURE_VERSION_GRADLE_TEMPLATE_PATH = path.join(\n __dirname,\n '../../../../templates/eas-build-configure-version.gradle.template'\n);\n\nconst APPLY_EAS_BUILD_INJECT_CREDENTIALS_GRADLE_LINE =\n 'apply from: \"./eas-build-inject-android-credentials.gradle\"';\nconst APPLY_EAS_BUILD_CONFIGURE_VERSION_GRADLE_LINE =\n 'apply from: \"./eas-build-configure-version.gradle\"';\n\nexport async function injectCredentialsGradleConfig(\n logger: bunyan,\n workingDir: string\n): Promise<void> {\n logger.info('Injecting signing config into build.gradle');\n await deleteEasBuildInjectCredentialsGradle(workingDir);\n await createEasBuildInjectCredentialsGradle(workingDir);\n await addApplyInjectCredentialsConfigToBuildGradle(workingDir);\n logger.info('Signing config injected');\n}\n\nexport async function injectConfigureVersionGradleConfig(\n logger: bunyan,\n workingDir: string,\n { versionCode, versionName }: { versionCode?: string; versionName?: string }\n): Promise<void> {\n logger.info('Injecting version config into build.gradle');\n if (versionCode) {\n logger.info(`Version code: ${versionCode}`);\n }\n if (versionName) {\n logger.info(`Version name: ${versionName}`);\n }\n await deleteEasBuildConfigureVersionGradle(workingDir);\n await createEasBuildConfigureVersionGradle(workingDir, { versionCode, versionName });\n await addApplyConfigureVersionConfigToBuildGradle(workingDir);\n logger.info('Version config injected');\n}\n\nasync function deleteEasBuildInjectCredentialsGradle(workingDir: string): Promise<void> {\n const targetPath = getEasBuildInjectCredentialsGradlePath(workingDir);\n await fs.remove(targetPath);\n}\n\nasync function deleteEasBuildConfigureVersionGradle(workingDir: string): Promise<void> {\n const targetPath = getEasBuildConfigureVersionGradlePath(workingDir);\n await fs.remove(targetPath);\n}\n\nfunction getEasBuildInjectCredentialsGradlePath(workingDir: string): string {\n return path.join(workingDir, 'android/app/eas-build-inject-android-credentials.gradle');\n}\n\nfunction getEasBuildConfigureVersionGradlePath(workingDir: string): string {\n return path.join(workingDir, 'android/app/eas-build-configure-version.gradle');\n}\n\nasync function createEasBuildInjectCredentialsGradle(workingDir: string): Promise<void> {\n const targetPath = getEasBuildInjectCredentialsGradlePath(workingDir);\n await fs.copy(EAS_BUILD_INJECT_CREDENTIALS_GRADLE_TEMPLATE_PATH, targetPath);\n}\n\nasync function createEasBuildConfigureVersionGradle(\n workingDir: string,\n { versionCode, versionName }: { versionCode?: string; versionName?: string }\n): Promise<void> {\n const targetPath = getEasBuildConfigureVersionGradlePath(workingDir);\n await templateFile(\n EAS_BUILD_CONFIGURE_VERSION_GRADLE_TEMPLATE_PATH,\n {\n VERSION_CODE: versionCode,\n VERSION_NAME: versionName,\n },\n targetPath,\n {\n mustache: false,\n }\n );\n}\n\nasync function addApplyInjectCredentialsConfigToBuildGradle(projectRoot: string): Promise<void> {\n const buildGradlePath = AndroidConfig.Paths.getAppBuildGradleFilePath(projectRoot);\n const buildGradleContents = await fs.readFile(path.join(buildGradlePath), 'utf8');\n\n if (hasLine(buildGradleContents, APPLY_EAS_BUILD_INJECT_CREDENTIALS_GRADLE_LINE)) {\n return;\n }\n\n await fs.writeFile(\n buildGradlePath,\n `${buildGradleContents.trim()}\\n${APPLY_EAS_BUILD_INJECT_CREDENTIALS_GRADLE_LINE}\\n`\n );\n}\n\nasync function addApplyConfigureVersionConfigToBuildGradle(projectRoot: string): Promise<void> {\n const buildGradlePath = AndroidConfig.Paths.getAppBuildGradleFilePath(projectRoot);\n const buildGradleContents = await fs.readFile(path.join(buildGradlePath), 'utf8');\n\n if (hasLine(buildGradleContents, APPLY_EAS_BUILD_CONFIGURE_VERSION_GRADLE_LINE)) {\n return;\n }\n\n await fs.writeFile(\n buildGradlePath,\n `${buildGradleContents.trim()}\\n${APPLY_EAS_BUILD_CONFIGURE_VERSION_GRADLE_LINE}\\n`\n );\n}\n\nfunction hasLine(haystack: string, needle: string): boolean {\n return (\n haystack\n .replace(/\\r\\n/g, '\\n')\n .split('\\n')\n // Check for both single and double quotes\n .some((line) => line === needle || line === needle.replace(/\"/g, \"'\"))\n );\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.configureEASUpdateAsync = configureEASUpdateAsync;
|
|
4
|
+
exports.isEASUpdateConfigured = isEASUpdateConfigured;
|
|
4
5
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
5
6
|
const expoUpdates_1 = require("./ios/expoUpdates");
|
|
6
7
|
const expoUpdates_2 = require("./android/expoUpdates");
|
|
@@ -43,7 +44,6 @@ async function configureEASUpdateAsync({ job, workingDirectory, logger, inputs,
|
|
|
43
44
|
await setRuntimeVersionNativelyAsync(job, runtimeVersion, workingDirectory);
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
|
-
exports.configureEASUpdateAsync = configureEASUpdateAsync;
|
|
47
47
|
function isEASUpdateConfigured(appConfig, logger) {
|
|
48
48
|
var _a;
|
|
49
49
|
const rawUrl = (_a = appConfig.updates) === null || _a === void 0 ? void 0 : _a.url;
|
|
@@ -60,7 +60,6 @@ function isEASUpdateConfigured(appConfig, logger) {
|
|
|
60
60
|
return false;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
exports.isEASUpdateConfigured = isEASUpdateConfigured;
|
|
64
63
|
async function configureEASUpdate(job, logger, channel, workingDirectory) {
|
|
65
64
|
const newUpdateRequestHeaders = {
|
|
66
65
|
'expo-channel-name': channel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../../src/steps/utils/expoUpdates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../../src/steps/utils/expoUpdates.ts"],"names":[],"mappings":";;AAeA,0DAmEC;AAED,sDAaC;AAjGD,uDAAwE;AAIxE,mDAI2B;AAC3B,uDAI+B;AAExB,KAAK,UAAU,uBAAuB,CAAC,EAC5C,GAAG,EACH,gBAAgB,EAChB,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAQ,GAYT;;IACC,MAAM,cAAc,GAClB,MAAA,MAAA,MAAM,CAAC,cAAc,mCAAI,MAAA,GAAG,CAAC,OAAO,0CAAE,cAAc,mCAAI,MAAM,CAAC,sBAAsB,CAAC;IAExF,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,KAAI,QAAQ,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;QAC3E,MAAM,CAAC,IAAI,CACT,wEAAwE,QAAQ,CAAC,cAAc,2CAA2C,cAAc,IAAI,CAC7J,CAAC;QACF,MAAM,CAAC,IAAI,CACT,+KAA+K,CAChL,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,MAAA,GAAG,CAAC,OAAO,0CAAE,OAAO,CAAC;IAEjE,IAAI,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7C,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAC7D,MAAM,mBAAmB,GAAG,MAAA,GAAG,CAAC,iBAAiB,mCAAI,KAAK,CAAC;YAE3D,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,KAAK,wBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC5F,MAAM,CAAC,IAAI,CAAC,sCAAsC,UAAU,eAAe,OAAO,GAAG,CAAC,CAAC;YACzF,CAAC;iBAAM,IAAI,mBAAmB,EAAE,CAAC;gBAC/B,8DAA8D;YAChE,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,MAAA,MAAA,SAAS,CAAC,OAAO,0CAAE,GAAG,mCAAI,IAAI,CAAC;gBACpD,MAAM,UAAU,GAAG,MAAA,GAAG,CAAC,YAAY,mCAAI,IAAI,CAAC;gBAC5C,MAAM,CAAC,IAAI,CACT,6EAA6E,YAAY,kDACvF,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mCAAmC,UAAU,eACjE,GAAG,CACJ,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;gBACvF,MAAM,CAAC,IAAI,CACT,gKAAgK,CACjK,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACrD,MAAM,8BAA8B,CAAC,GAAG,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,SAAqB,EAAE,MAAc;;IACzE,MAAM,MAAM,GAAG,MAAA,SAAS,CAAC,OAAO,0CAAE,GAAG,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,mCAAmC,MAAM,SAAS,CAAC,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,GAAQ,EACR,MAAc,EACd,OAAe,EACf,gBAAwB;IAExB,MAAM,uBAAuB,GAA2B;QACtD,mBAAmB,EAAE,OAAO;KAC7B,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,KAAK,wBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5F,MAAM,CAAC,IAAI,CACT,0CAA0C,UAAU,SAAS,IAAI,CAAC,SAAS,CACzE,uBAAuB,CACxB,GAAG,CACL,CAAC;IAEF,QAAQ,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,wBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACtB,MAAM,IAAA,4CAA8B,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,KAAK,wBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAClB,MAAM,IAAA,wCAA0B,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAQ,EAAE,gBAAwB;IAC/D,QAAQ,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,wBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACtB,OAAO,MAAM,IAAA,mDAAqC,EAAC,gBAAgB,CAAC,CAAC;QACvE,CAAC;QACD,KAAK,wBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAClB,OAAO,MAAM,IAAA,+CAAiC,EAAC,gBAAgB,CAAC,CAAC;QACnE,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,GAAQ,EACR,cAAsB,EACtB,gBAAwB;IAExB,QAAQ,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,wBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACtB,MAAM,IAAA,mDAAqC,EAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QACD,KAAK,wBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAClB,MAAM,IAAA,+CAAiC,EAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;AACH,CAAC","sourcesContent":["import { BuildJob, 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: BuildJob;\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 environment variables.\"\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 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 } 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"]}
|
|
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.configureCredentialsAsync = configureCredentialsAsync;
|
|
7
|
+
exports.updateVersionsAsync = updateVersionsAsync;
|
|
8
|
+
exports.evaluateTemplateString = evaluateTemplateString;
|
|
7
9
|
const path_1 = __importDefault(require("path"));
|
|
8
10
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
9
11
|
const uniq_1 = __importDefault(require("lodash/uniq"));
|
|
@@ -22,7 +24,6 @@ async function configureCredentialsAsync(logger, workingDir, { credentials, buil
|
|
|
22
24
|
});
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
|
-
exports.configureCredentialsAsync = configureCredentialsAsync;
|
|
26
27
|
async function updateVersionsAsync(logger, workingDir, { buildNumber, appVersion, }, { targetNames, buildConfiguration, }) {
|
|
27
28
|
const project = config_plugins_1.IOSConfig.XcodeUtils.getPbxproj(workingDir);
|
|
28
29
|
const iosDir = path_1.default.join(workingDir, 'ios');
|
|
@@ -57,7 +58,6 @@ async function updateVersionsAsync(logger, workingDir, { buildNumber, appVersion
|
|
|
57
58
|
await fs_extra_1.default.writeFile(infoPlistPath, plist_1.default.build(infoPlist));
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
|
-
exports.updateVersionsAsync = updateVersionsAsync;
|
|
61
61
|
function trimQuotes(s) {
|
|
62
62
|
return (s === null || s === void 0 ? void 0 : s.startsWith('"')) && s.endsWith('"') ? s.slice(1, -1) : s;
|
|
63
63
|
}
|
|
@@ -74,5 +74,4 @@ function evaluateTemplateString(s, buildSettings) {
|
|
|
74
74
|
}
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
-
exports.evaluateTemplateString = evaluateTemplateString;
|
|
78
77
|
//# sourceMappingURL=configure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../../src/steps/utils/ios/configure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../../src/steps/utils/ios/configure.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\n\nimport { IOSConfig } from '@expo/config-plugins';\nimport uniq from 'lodash/uniq';\nimport fs from 'fs-extra';\nimport plist from '@expo/plist';\nimport { bunyan } from '@expo/logger';\n\nimport { Credentials } from './credentials/manager';\n\nexport async function configureCredentialsAsync(\n logger: bunyan,\n workingDir: string,\n {\n credentials,\n buildConfiguration,\n }: {\n credentials: Credentials;\n buildConfiguration: string;\n }\n): Promise<void> {\n const targetNames = Object.keys(credentials.targetProvisioningProfiles);\n for (const targetName of targetNames) {\n const profile = credentials.targetProvisioningProfiles[targetName];\n logger.info(\n `Assigning provisioning profile '${profile.name}' (Apple Team ID: ${profile.teamId}) to target '${targetName}'`\n );\n IOSConfig.ProvisioningProfile.setProvisioningProfileForPbxproj(workingDir, {\n targetName,\n profileName: profile.name,\n appleTeamId: profile.teamId,\n buildConfiguration,\n });\n }\n}\n\nexport async function updateVersionsAsync(\n logger: bunyan,\n workingDir: string,\n {\n buildNumber,\n appVersion,\n }: {\n buildNumber?: string;\n appVersion?: string;\n },\n {\n targetNames,\n buildConfiguration,\n }: {\n targetNames: string[];\n buildConfiguration: string;\n }\n): Promise<void> {\n const project = IOSConfig.XcodeUtils.getPbxproj(workingDir);\n const iosDir = path.join(workingDir, 'ios');\n\n const infoPlistPaths: string[] = [];\n for (const targetName of targetNames) {\n const xcBuildConfiguration = IOSConfig.Target.getXCBuildConfigurationFromPbxproj(project, {\n targetName,\n buildConfiguration,\n });\n const infoPlist = xcBuildConfiguration.buildSettings.INFOPLIST_FILE;\n if (infoPlist) {\n const evaluatedInfoPlistPath = trimQuotes(\n evaluateTemplateString(infoPlist, {\n SRCROOT: iosDir,\n })\n );\n const absolutePath = path.isAbsolute(evaluatedInfoPlistPath)\n ? evaluatedInfoPlistPath\n : path.join(iosDir, evaluatedInfoPlistPath);\n infoPlistPaths.push(path.normalize(absolutePath));\n }\n }\n const uniqueInfoPlistPaths = uniq(infoPlistPaths);\n for (const infoPlistPath of uniqueInfoPlistPaths) {\n logger.info(`Updating versions in ${infoPlistPath}`);\n const infoPlistRaw = await fs.readFile(infoPlistPath, 'utf-8');\n const infoPlist = plist.parse(infoPlistRaw) as IOSConfig.InfoPlist;\n if (buildNumber) {\n infoPlist.CFBundleVersion = buildNumber;\n }\n if (appVersion) {\n infoPlist.CFBundleShortVersionString = appVersion;\n }\n await fs.writeFile(infoPlistPath, plist.build(infoPlist));\n }\n}\n\nfunction trimQuotes(s: string): string {\n return s?.startsWith('\"') && s.endsWith('\"') ? s.slice(1, -1) : s;\n}\n\nexport function evaluateTemplateString(s: string, buildSettings: Record<string, string>): string {\n // necessary because buildSettings might be XCBuildConfiguration['buildSettings'] which is not a plain object\n const vars = { ...buildSettings };\n return s.replace(/\\$\\((\\w+)\\)/g, (match, key) => {\n if (vars.hasOwnProperty(key)) {\n const value = String(vars[key]);\n return trimQuotes(value);\n } else {\n return match;\n }\n });\n}\n"]}
|
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.getFingerprint = getFingerprint;
|
|
7
|
+
exports.getCommonName = getCommonName;
|
|
7
8
|
const node_forge_1 = __importDefault(require("node-forge"));
|
|
8
9
|
function getFingerprint({ dataBase64, password }) {
|
|
9
10
|
const certData = getCertData(dataBase64, password);
|
|
@@ -12,14 +13,12 @@ function getFingerprint({ dataBase64, password }) {
|
|
|
12
13
|
const fingerprint = node_forge_1.default.md.sha1.create().update(certDer).digest().toHex().toUpperCase();
|
|
13
14
|
return fingerprint;
|
|
14
15
|
}
|
|
15
|
-
exports.getFingerprint = getFingerprint;
|
|
16
16
|
function getCommonName({ dataBase64, password }) {
|
|
17
17
|
const certData = getCertData(dataBase64, password);
|
|
18
18
|
const { attributes } = certData.subject;
|
|
19
19
|
const commonNameAttribute = attributes.find(({ name }) => name === 'commonName');
|
|
20
20
|
return Buffer.from(commonNameAttribute.value, 'ascii').toString();
|
|
21
21
|
}
|
|
22
|
-
exports.getCommonName = getCommonName;
|
|
23
22
|
function getCertData(certificateBase64, password) {
|
|
24
23
|
var _a, _b, _c;
|
|
25
24
|
const p12Der = node_forge_1.default.util.decode64(certificateBase64);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distributionCertificate.js","sourceRoot":"","sources":["../../../../../src/steps/utils/ios/credentials/distributionCertificate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"distributionCertificate.js","sourceRoot":"","sources":["../../../../../src/steps/utils/ios/credentials/distributionCertificate.ts"],"names":[],"mappings":";;;;;AAGA,wCAMC;AAED,sCAOC;AAjBD,4DAA+B;AAE/B,SAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAA+B;IAClF,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,oBAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,oBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,oBAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1F,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAA+B;IACjF,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IACxC,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CACzC,CAAC,EAAE,IAAI,EAAqB,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,CACvD,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,WAAW,CAAC,iBAAyB,EAAE,QAAgB;;IAC9D,MAAM,MAAM,GAAG,oBAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,oBAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,GAA2B,CAAC;IAChC,IAAI,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,GAAG,oBAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,oBAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,MAAW,EAAE,CAAC;QACrB,MAAM,KAAK,GAAU,MAAM,CAAC;QAC5B,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,oBAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,0CAAG,WAAW,CAAC,0CAAG,CAAC,CAAC,0CAAE,IAAI,CAAC;IACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import { Ios } from '@expo/eas-build-job';\nimport forge from 'node-forge';\n\nexport function getFingerprint({ dataBase64, password }: Ios.DistributionCertificate): string {\n const certData = getCertData(dataBase64, password);\n const certAsn1 = forge.pki.certificateToAsn1(certData);\n const certDer = forge.asn1.toDer(certAsn1).getBytes();\n const fingerprint = forge.md.sha1.create().update(certDer).digest().toHex().toUpperCase();\n return fingerprint;\n}\n\nexport function getCommonName({ dataBase64, password }: Ios.DistributionCertificate): string {\n const certData = getCertData(dataBase64, password);\n const { attributes } = certData.subject;\n const commonNameAttribute = attributes.find(\n ({ name }: { name?: string }) => name === 'commonName'\n );\n return Buffer.from(commonNameAttribute.value, 'ascii').toString();\n}\n\nfunction getCertData(certificateBase64: string, password: string): any {\n const p12Der = forge.util.decode64(certificateBase64);\n const p12Asn1 = forge.asn1.fromDer(p12Der);\n let p12: forge.pkcs12.Pkcs12Pfx;\n try {\n if (password) {\n p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, password);\n } else {\n p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1);\n }\n } catch (_error: any) {\n const error: Error = _error;\n if (/Invalid password/.exec(error.message)) {\n throw new Error('Provided password for the distribution certificate is probably invalid');\n } else {\n throw error;\n }\n }\n\n const certBagType = forge.pki.oids.certBag;\n const certData = p12.getBags({ bagType: certBagType })?.[certBagType]?.[0]?.cert;\n if (!certData) {\n throw new Error(\"getCertData: couldn't find cert bag\");\n }\n return certData;\n}\n"]}
|