@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
|
@@ -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.runEasBuildInternalAsync = runEasBuildInternalAsync;
|
|
7
|
+
exports.resolveEnvFromBuildProfileAsync = resolveEnvFromBuildProfileAsync;
|
|
7
8
|
const assert_1 = __importDefault(require("assert"));
|
|
8
9
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
9
10
|
const logger_1 = require("@expo/logger");
|
|
@@ -57,7 +58,6 @@ async function runEasBuildInternalAsync({ job, logger, env, cwd, projectRootOver
|
|
|
57
58
|
oldJob: job,
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
|
-
exports.runEasBuildInternalAsync = runEasBuildInternalAsync;
|
|
61
61
|
async function resolveEnvFromBuildProfileAsync(ctx, { cwd }) {
|
|
62
62
|
var _a;
|
|
63
63
|
const { cmd, args, extraEnv } = await resolveEasCommandPrefixAndEnvAsync();
|
|
@@ -90,7 +90,6 @@ async function resolveEnvFromBuildProfileAsync(ctx, { cwd }) {
|
|
|
90
90
|
const env = validateEnvs(parsed.buildProfile);
|
|
91
91
|
return env;
|
|
92
92
|
}
|
|
93
|
-
exports.resolveEnvFromBuildProfileAsync = resolveEnvFromBuildProfileAsync;
|
|
94
93
|
async function resolveEasCommandPrefixAndEnvAsync() {
|
|
95
94
|
const npxArgsPrefix = (await (0, packageManager_1.isAtLeastNpm7Async)()) ? ['-y'] : [];
|
|
96
95
|
if (process.env.ENVIRONMENT === 'development') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"easBuildInternal.js","sourceRoot":"","sources":["../../src/common/easBuildInternal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"easBuildInternal.js","sourceRoot":"","sources":["../../src/common/easBuildInternal.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\n\nimport { BuildJob, Env, Metadata, sanitizeBuildJob, sanitizeMetadata } from '@expo/eas-build-job';\nimport { PipeMode, bunyan } from '@expo/logger';\nimport spawn from '@expo/turtle-spawn';\nimport Joi from 'joi';\nimport nullthrows from 'nullthrows';\nimport { BuildStepEnv } from '@expo/steps';\n\nimport { BuildContext } from '../context';\nimport { isAtLeastNpm7Async } from '../utils/packageManager';\n\nconst EAS_CLI_STAGING_NPM_TAG = 'latest-eas-build-staging';\nconst EAS_CLI_PRODUCTION_NPM_TAG = 'latest-eas-build';\n\nconst EasBuildInternalResultSchema = Joi.object<{ job: object; metadata: object }>({\n job: Joi.object().unknown(),\n metadata: Joi.object().unknown(),\n});\n\nexport async function runEasBuildInternalAsync<TJob extends BuildJob>({\n job,\n logger,\n env,\n cwd,\n projectRootOverride,\n}: {\n job: TJob;\n logger: bunyan;\n env: BuildStepEnv;\n cwd: string;\n projectRootOverride?: string;\n}): Promise<{\n newJob: TJob;\n newMetadata: Metadata;\n}> {\n const { cmd, args, extraEnv } = await resolveEasCommandPrefixAndEnvAsync();\n const { buildProfile, githubTriggerOptions } = job;\n assert(buildProfile, 'build profile is missing in a build from git-based integration.');\n\n const autoSubmitArgs = [];\n if (githubTriggerOptions?.submitProfile) {\n autoSubmitArgs.push('--auto-submit-with-profile');\n autoSubmitArgs.push(githubTriggerOptions.submitProfile);\n } else if (githubTriggerOptions?.autoSubmit) {\n autoSubmitArgs.push('--auto-submit');\n }\n\n const result = await spawn(\n cmd,\n [\n ...args,\n 'build:internal',\n '--platform',\n job.platform,\n '--profile',\n buildProfile,\n ...autoSubmitArgs,\n ],\n {\n cwd,\n env: {\n ...env,\n EXPO_TOKEN: nullthrows(job.secrets, 'Secrets must be defined for non-custom builds')\n .robotAccessToken,\n ...extraEnv,\n EAS_PROJECT_ROOT: projectRootOverride,\n },\n logger,\n // This prevents printing stdout with job secrets and credentials to logs.\n mode: PipeMode.STDERR_ONLY_AS_STDOUT,\n }\n );\n\n const stdout = result.stdout.toString();\n const parsed = JSON.parse(stdout);\n return validateEasBuildInternalResult({\n result: parsed,\n oldJob: job,\n });\n}\n\nexport async function resolveEnvFromBuildProfileAsync<TJob extends BuildJob>(\n ctx: BuildContext<TJob>,\n { cwd }: { cwd: string }\n): Promise<Env> {\n const { cmd, args, extraEnv } = await resolveEasCommandPrefixAndEnvAsync();\n const { buildProfile } = ctx.job;\n assert(buildProfile, 'build profile is missing in a build from git-based integration.');\n let spawnResult;\n try {\n spawnResult = await spawn(\n cmd,\n [\n ...args,\n 'config',\n '--platform',\n ctx.job.platform,\n '--profile',\n buildProfile,\n '--non-interactive',\n '--json',\n '--eas-json-only',\n ],\n {\n cwd,\n env: { ...ctx.env, ...extraEnv },\n }\n );\n } catch (err: any) {\n ctx.logger.error(`Failed to the read build profile ${buildProfile} from eas.json.`);\n ctx.logger.error(err.stderr?.toString());\n throw Error(`Failed to read the build profile ${buildProfile} from eas.json.`);\n }\n const stdout = spawnResult.stdout.toString();\n const parsed = JSON.parse(stdout);\n const env = validateEnvs(parsed.buildProfile);\n return env;\n}\n\nasync function resolveEasCommandPrefixAndEnvAsync(): Promise<{\n cmd: string;\n args: string[];\n extraEnv: Env;\n}> {\n const npxArgsPrefix = (await isAtLeastNpm7Async()) ? ['-y'] : [];\n if (process.env.ENVIRONMENT === 'development') {\n return {\n cmd: 'npx',\n args: [...npxArgsPrefix, `eas-cli@${EAS_CLI_STAGING_NPM_TAG}`],\n extraEnv: {},\n };\n } else if (process.env.ENVIRONMENT === 'staging') {\n return {\n cmd: 'npx',\n args: [...npxArgsPrefix, `eas-cli@${EAS_CLI_STAGING_NPM_TAG}`],\n extraEnv: { EXPO_STAGING: '1' },\n };\n } else {\n return {\n cmd: 'npx',\n args: [...npxArgsPrefix, `eas-cli@${EAS_CLI_PRODUCTION_NPM_TAG}`],\n extraEnv: {},\n };\n }\n}\n\nfunction validateEasBuildInternalResult<TJob extends BuildJob>({\n oldJob,\n result,\n}: {\n oldJob: TJob;\n result: any;\n}): { newJob: TJob; newMetadata: Metadata } {\n const { value, error } = EasBuildInternalResultSchema.validate(result, {\n stripUnknown: true,\n convert: true,\n abortEarly: false,\n });\n if (error) {\n throw error;\n }\n const newJob = sanitizeBuildJob({\n ...value.job,\n // We want to retain values that we have set on the job.\n appId: oldJob.appId,\n initiatingUserId: oldJob.initiatingUserId,\n }) as TJob;\n assert(newJob.platform === oldJob.platform, 'eas-cli returned a job for a wrong platform');\n const newMetadata = sanitizeMetadata(value.metadata);\n return { newJob, newMetadata };\n}\n\nfunction validateEnvs(result: any): Env {\n const { value, error } = Joi.object({\n env: Joi.object().pattern(Joi.string(), Joi.string()),\n }).validate(result, {\n stripUnknown: true,\n convert: true,\n abortEarly: false,\n });\n if (error) {\n throw error;\n }\n return value?.env;\n}\n"]}
|
package/dist/common/git.d.ts
CHANGED
package/dist/common/git.js
CHANGED
|
@@ -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.shallowCloneRepositoryAsync =
|
|
6
|
+
exports.shallowCloneRepositoryAsync = shallowCloneRepositoryAsync;
|
|
7
7
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
8
8
|
async function shallowCloneRepositoryAsync({ logger, archiveSource, destinationDirectory, }) {
|
|
9
9
|
const { repositoryUrl } = archiveSource;
|
|
@@ -47,7 +47,6 @@ async function shallowCloneRepositoryAsync({ logger, archiveSource, destinationD
|
|
|
47
47
|
throw err;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
exports.shallowCloneRepositoryAsync = shallowCloneRepositoryAsync;
|
|
51
50
|
function getSanitizedGitUrl(maybeGitUrl) {
|
|
52
51
|
try {
|
|
53
52
|
const url = new URL(maybeGitUrl);
|
package/dist/common/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/common/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/common/git.ts"],"names":[],"mappings":"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","sourcesContent":["import { ArchiveSource, ArchiveSourceType } from '@expo/eas-build-job';\nimport { bunyan } from '@expo/logger';\nimport spawn from '@expo/turtle-spawn';\n\nexport async function shallowCloneRepositoryAsync({\n logger,\n archiveSource,\n destinationDirectory,\n}: {\n logger: bunyan;\n archiveSource: ArchiveSource & { type: ArchiveSourceType.GIT };\n destinationDirectory: string;\n}): Promise<void> {\n const { repositoryUrl } = archiveSource;\n try {\n await spawn('git', ['init'], { cwd: destinationDirectory });\n await spawn('git', ['remote', 'add', 'origin', repositoryUrl], { cwd: destinationDirectory });\n\n const { gitRef, gitCommitHash } = archiveSource;\n\n await spawn('git', ['fetch', 'origin', '--depth', '1', '--no-tags', gitCommitHash], {\n cwd: destinationDirectory,\n });\n\n await spawn('git', ['checkout', gitCommitHash], { cwd: destinationDirectory });\n\n // If we have a gitRef, we try to add it to the repo.\n if (gitRef) {\n const { name, type } = getStrippedBranchOrTagName(gitRef);\n switch (type) {\n // If the gitRef is for a tag, we add a lightweight tag to current commit.\n case 'tag': {\n await spawn('git', ['tag', name], { cwd: destinationDirectory });\n break;\n }\n // gitRef for a branch may come as:\n // - qualified ref (e.g. refs/heads/feature/add-icon), detected as \"branch\" for a push,\n // - unqualified ref (e.g. feature/add-icon), detected as \"other\" for a pull request.\n case 'branch':\n case 'other': {\n await spawn('git', ['checkout', '-b', name], { cwd: destinationDirectory });\n break;\n }\n }\n }\n } catch (err: any) {\n const sanitizedUrl = getSanitizedGitUrl(repositoryUrl);\n if (sanitizedUrl) {\n logger.error(`Failed to clone git repository: ${sanitizedUrl}.`);\n } else {\n logger.error('Failed to clone git repository.');\n }\n logger.error(err.stderr);\n throw err;\n }\n}\n\nfunction getSanitizedGitUrl(maybeGitUrl: string): string | null {\n try {\n const url = new URL(maybeGitUrl);\n if (url.password) {\n url.password = '*******';\n }\n return url.toString();\n } catch {\n return null;\n }\n}\n\nfunction getStrippedBranchOrTagName(ref: string): {\n name: string;\n type: 'branch' | 'tag' | 'other';\n} {\n const branchRegex = /(\\/?refs)?\\/?heads\\/(.+)/;\n const branchMatch = ref.match(branchRegex);\n\n if (branchMatch) {\n return {\n name: branchMatch[2],\n type: 'branch',\n };\n }\n\n const tagRegex = /(\\/?refs)?\\/?tags\\/(.+)/;\n const tagMatch = ref.match(tagRegex);\n\n if (tagMatch) {\n return {\n name: tagMatch[2],\n type: 'tag',\n };\n }\n\n return {\n name: ref,\n type: 'other',\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.installDependenciesAsync = installDependenciesAsync;
|
|
7
|
+
exports.resolvePackagerDir = resolvePackagerDir;
|
|
7
8
|
const path_1 = __importDefault(require("path"));
|
|
8
9
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
9
10
|
const packageManager_1 = require("../utils/packageManager");
|
|
@@ -48,7 +49,6 @@ async function installDependenciesAsync({ packageManager, env, logger, infoCallb
|
|
|
48
49
|
}),
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
|
-
exports.installDependenciesAsync = installDependenciesAsync;
|
|
52
52
|
function resolvePackagerDir(ctx) {
|
|
53
53
|
const packagerRunDir = (0, packageManager_1.findPackagerRootDir)(ctx.getReactNativeProjectDirectory());
|
|
54
54
|
if (packagerRunDir !== ctx.getReactNativeProjectDirectory()) {
|
|
@@ -57,5 +57,4 @@ function resolvePackagerDir(ctx) {
|
|
|
57
57
|
}
|
|
58
58
|
return packagerRunDir;
|
|
59
59
|
}
|
|
60
|
-
exports.resolvePackagerDir = resolvePackagerDir;
|
|
61
60
|
//# sourceMappingURL=installDependencies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installDependencies.js","sourceRoot":"","sources":["../../src/common/installDependencies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"installDependencies.js","sourceRoot":"","sources":["../../src/common/installDependencies.ts"],"names":[],"mappings":";;;;;AASA,4DAoDC;AAED,gDAYC;AA3ED,gDAAwB;AAGxB,sEAAoF;AAGpF,4DAA8E;AAC9E,8CAA4D;AAErD,KAAK,UAAU,wBAAwB,CAAC,EAC7C,cAAc,EACd,GAAG,EACH,MAAM,EACN,cAAc,EACd,GAAG,EACH,iBAAiB,GAQlB;IACC,IAAI,IAAc,CAAC;IACnB,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,+BAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QACD,KAAK,+BAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,IAAI,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;YACrF,MAAM;QACR,CAAC;QACD,KAAK,+BAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,mBAAmB,GAAG,MAAM,IAAA,kCAAwB,EAAC,GAAG,CAAC,CAAC;YAChE,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC9F,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,+BAAc,CAAC,GAAG;YACrB,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxE,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,gCAAgC,cAAc,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,YAAY,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC;IACjF,OAAO;QACL,YAAY,EAAE,IAAA,sBAAK,EAAC,cAAc,EAAE,IAAI,EAAE;YACxC,GAAG;YACH,MAAM;YACN,cAAc;YACd,GAAG;SACJ,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAsB;IACvD,MAAM,cAAc,GAAG,IAAA,oCAAmB,EAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC;IACjF,IAAI,cAAc,KAAK,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC;QAC5D,MAAM,mCAAmC,GAAG,cAAI,CAAC,QAAQ,CACvD,GAAG,CAAC,cAAc,EAClB,GAAG,CAAC,8BAA8B,EAAE,CACrC,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,qBAAqB,mCAAmC,UAAU,GAAG,CAAC,cAAc,YAAY,CACjG,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import path from 'path';\n\nimport { Job } from '@expo/eas-build-job';\nimport spawn, { SpawnPromise, SpawnResult, SpawnOptions } from '@expo/turtle-spawn';\n\nimport { BuildContext } from '../context';\nimport { PackageManager, findPackagerRootDir } from '../utils/packageManager';\nimport { isUsingModernYarnVersion } from '../utils/project';\n\nexport async function installDependenciesAsync({\n packageManager,\n env,\n logger,\n infoCallbackFn,\n cwd,\n useFrozenLockfile,\n}: {\n packageManager: PackageManager;\n env: Record<string, string | undefined>;\n cwd: string;\n logger: Exclude<SpawnOptions['logger'], undefined>;\n infoCallbackFn?: SpawnOptions['infoCallbackFn'];\n useFrozenLockfile: boolean;\n}): Promise<{ spawnPromise: SpawnPromise<SpawnResult> }> {\n let args: string[];\n switch (packageManager) {\n case PackageManager.NPM: {\n args = [useFrozenLockfile ? 'ci' : 'install'];\n break;\n }\n case PackageManager.PNPM: {\n args = ['install', useFrozenLockfile ? '--frozen-lockfile' : '--no-frozen-lockfile'];\n break;\n }\n case PackageManager.YARN: {\n const isModernYarnVersion = await isUsingModernYarnVersion(cwd);\n if (isModernYarnVersion) {\n args = ['install', '--inline-builds', useFrozenLockfile ? '--immutable' : '--no-immutable'];\n } else {\n args = ['install', ...(useFrozenLockfile ? ['--frozen-lockfile'] : [])];\n }\n break;\n }\n case PackageManager.BUN:\n args = ['install', ...(useFrozenLockfile ? ['--frozen-lockfile'] : [])];\n break;\n default:\n throw new Error(`Unsupported package manager: ${packageManager}`);\n }\n if (env['EAS_VERBOSE'] === '1') {\n args = [...args, '--verbose'];\n }\n logger.info(`Running \"${packageManager} ${args.join(' ')}\" in ${cwd} directory`);\n return {\n spawnPromise: spawn(packageManager, args, {\n cwd,\n logger,\n infoCallbackFn,\n env,\n }),\n };\n}\n\nexport function resolvePackagerDir(ctx: BuildContext<Job>): string {\n const packagerRunDir = findPackagerRootDir(ctx.getReactNativeProjectDirectory());\n if (packagerRunDir !== ctx.getReactNativeProjectDirectory()) {\n const relativeReactNativeProjectDirectory = path.relative(\n ctx.buildDirectory,\n ctx.getReactNativeProjectDirectory()\n );\n ctx.logger.info(\n `We detected that '${relativeReactNativeProjectDirectory}' is a ${ctx.packageManager} workspace`\n );\n }\n return packagerRunDir;\n}\n"]}
|
package/dist/common/prebuild.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.prebuildAsync =
|
|
3
|
+
exports.prebuildAsync = prebuildAsync;
|
|
4
4
|
const project_1 = require("../utils/project");
|
|
5
5
|
const installDependencies_1 = require("./installDependencies");
|
|
6
6
|
async function prebuildAsync(ctx, { logger, workingDir, options }) {
|
|
@@ -29,7 +29,6 @@ async function prebuildAsync(ctx, { logger, workingDir, options }) {
|
|
|
29
29
|
})).spawnPromise;
|
|
30
30
|
await installDependenciesSpawnPromise;
|
|
31
31
|
}
|
|
32
|
-
exports.prebuildAsync = prebuildAsync;
|
|
33
32
|
function getPrebuildCommandArgs(ctx) {
|
|
34
33
|
var _a, _b;
|
|
35
34
|
let prebuildCommand = (_b = (_a = ctx.job.experimental) === null || _a === void 0 ? void 0 : _a.prebuildCommand) !== null && _b !== void 0 ? _b : `prebuild --no-install --platform ${ctx.job.platform}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prebuild.js","sourceRoot":"","sources":["../../src/common/prebuild.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prebuild.js","sourceRoot":"","sources":["../../src/common/prebuild.ts"],"names":[],"mappings":";;AAaA,sCA+BC;AAvCD,8CAAqD;AAErD,+DAAqF;AAM9E,KAAK,UAAU,aAAa,CACjC,GAAuB,EACvB,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAqE;IAElG,MAAM,YAAY,GAAiB;QACjC,GAAG,EAAE,UAAU;QACf,MAAM;QACN,GAAG,EAAE;YACH,yBAAyB,EAAE,GAAG;YAC9B,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;YACrB,GAAG,GAAG,CAAC,GAAG;SACX;KACF,CAAC;IAEF,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,IAAA,2BAAiB,EAAC;QACtB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,YAAY;QACrB,cAAc,EAAE,GAAG,CAAC,cAAc;KACnC,CAAC,CAAC;IACH,MAAM,+BAA+B,GAAG,CACtC,MAAM,IAAA,8CAAwB,EAAC;QAC7B,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,MAAM;QACN,GAAG,EAAE,IAAA,wCAAkB,EAAC,GAAG,CAAC;QAC5B,oFAAoF;QACpF,iBAAiB,EAAE,KAAK;KACzB,CAAC,CACH,CAAC,YAAY,CAAC;IACf,MAAM,+BAA+B,CAAC;AACxC,CAAC;AAED,SAAS,sBAAsB,CAAwB,GAAuB;;IAC5E,IAAI,eAAe,GACjB,MAAA,MAAA,GAAG,CAAC,GAAG,CAAC,YAAY,0CAAE,eAAe,mCAAI,oCAAoC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAClG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACjD,eAAe,GAAG,GAAG,eAAe,eAAe,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,gBAAgB,GAAG,MAAM,CAAC;IAChC,MAAM,iBAAiB,GAAG,OAAO,CAAC;IAClC,MAAM,oBAAoB,GAAG,WAAW,CAAC;IACzC,IAAI,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjD,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClD,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/E,CAAC;IACD,IAAI,eAAe,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACrD,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC","sourcesContent":["import { BuildJob } from '@expo/eas-build-job';\nimport { SpawnOptions } from '@expo/turtle-spawn';\nimport { bunyan } from '@expo/logger';\n\nimport { BuildContext } from '../context';\nimport { runExpoCliCommand } from '../utils/project';\n\nimport { installDependenciesAsync, resolvePackagerDir } from './installDependencies';\n\nexport interface PrebuildOptions {\n extraEnvs?: Record<string, string>;\n}\n\nexport async function prebuildAsync<TJob extends BuildJob>(\n ctx: BuildContext<TJob>,\n { logger, workingDir, options }: { logger: bunyan; workingDir: string; options?: PrebuildOptions }\n): Promise<void> {\n const spawnOptions: SpawnOptions = {\n cwd: workingDir,\n logger,\n env: {\n EXPO_IMAGE_UTILS_NO_SHARP: '1',\n ...options?.extraEnvs,\n ...ctx.env,\n },\n };\n\n const prebuildCommandArgs = getPrebuildCommandArgs(ctx);\n await runExpoCliCommand({\n args: prebuildCommandArgs,\n options: spawnOptions,\n packageManager: ctx.packageManager,\n });\n const installDependenciesSpawnPromise = (\n await installDependenciesAsync({\n packageManager: ctx.packageManager,\n env: ctx.env,\n logger,\n cwd: resolvePackagerDir(ctx),\n // prebuild sometimes modifies package.json, so we don't want to use frozen lockfile\n useFrozenLockfile: false,\n })\n ).spawnPromise;\n await installDependenciesSpawnPromise;\n}\n\nfunction getPrebuildCommandArgs<TJob extends BuildJob>(ctx: BuildContext<TJob>): string[] {\n let prebuildCommand =\n ctx.job.experimental?.prebuildCommand ?? `prebuild --no-install --platform ${ctx.job.platform}`;\n if (!prebuildCommand.match(/(?:--platform| -p)/)) {\n prebuildCommand = `${prebuildCommand} --platform ${ctx.job.platform}`;\n }\n const npxCommandPrefix = 'npx ';\n const expoCommandPrefix = 'expo ';\n const expoCliCommandPrefix = 'expo-cli ';\n if (prebuildCommand.startsWith(npxCommandPrefix)) {\n prebuildCommand = prebuildCommand.substring(npxCommandPrefix.length).trim();\n }\n if (prebuildCommand.startsWith(expoCommandPrefix)) {\n prebuildCommand = prebuildCommand.substring(expoCommandPrefix.length).trim();\n }\n if (prebuildCommand.startsWith(expoCliCommandPrefix)) {\n prebuildCommand = prebuildCommand.substring(expoCliCommandPrefix.length).trim();\n }\n\n return prebuildCommand.split(' ');\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.prepareProjectSourcesAsync = prepareProjectSourcesAsync;
|
|
7
|
+
exports.downloadAndUnpackProjectFromTarGzAsync = downloadAndUnpackProjectFromTarGzAsync;
|
|
7
8
|
const path_1 = __importDefault(require("path"));
|
|
8
9
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
9
10
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
@@ -42,7 +43,6 @@ async function prepareProjectSourcesAsync(ctx, destinationDirectory = ctx.buildD
|
|
|
42
43
|
});
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
|
-
exports.prepareProjectSourcesAsync = prepareProjectSourcesAsync;
|
|
46
46
|
async function fetchRepositoryUrlAsync(ctx) {
|
|
47
47
|
var _a;
|
|
48
48
|
const taskId = (0, nullthrows_1.default)(ctx.env.EAS_BUILD_ID, 'EAS_BUILD_ID is not set');
|
|
@@ -95,7 +95,6 @@ async function downloadAndUnpackProjectFromTarGzAsync(ctx, projectArchiveUrl, de
|
|
|
95
95
|
logger: ctx.logger,
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
|
-
exports.downloadAndUnpackProjectFromTarGzAsync = downloadAndUnpackProjectFromTarGzAsync;
|
|
99
98
|
async function prepareProjectSourcesLocallyAsync(ctx, projectArchivePath, destinationDirectory) {
|
|
100
99
|
const projectTarball = path_1.default.join(ctx.workingdir, 'project.tar.gz');
|
|
101
100
|
await fs_extra_1.default.copy(projectArchivePath, projectTarball);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectSources.js","sourceRoot":"","sources":["../../src/common/projectSources.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projectSources.js","sourceRoot":"","sources":["../../src/common/projectSources.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\n\nimport spawn from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\nimport { ArchiveSourceType, Job } from '@expo/eas-build-job';\nimport { bunyan } from '@expo/logger';\nimport downloadFile from '@expo/downloader';\nimport { z } from 'zod';\nimport { asyncResult } from '@expo/results';\nimport nullthrows from 'nullthrows';\n\nimport { BuildContext } from '../context';\nimport { turtleFetch } from '../utils/turtleFetch';\n\nimport { shallowCloneRepositoryAsync } from './git';\n\nexport async function prepareProjectSourcesAsync<TJob extends Job>(\n ctx: BuildContext<TJob>,\n destinationDirectory = ctx.buildDirectory\n): Promise<void> {\n if (ctx.job.projectArchive.type === ArchiveSourceType.GCS) {\n throw new Error('GCS project sources should be resolved earlier to url');\n } else if (ctx.job.projectArchive.type === ArchiveSourceType.PATH) {\n await prepareProjectSourcesLocallyAsync(ctx, ctx.job.projectArchive.path, destinationDirectory); // used in eas build --local\n } else if (ctx.job.projectArchive.type === ArchiveSourceType.URL) {\n await downloadAndUnpackProjectFromTarGzAsync(\n ctx,\n ctx.job.projectArchive.url,\n destinationDirectory\n );\n } else if (ctx.job.projectArchive.type === ArchiveSourceType.GIT) {\n let repositoryUrl = ctx.job.projectArchive.repositoryUrl;\n try {\n repositoryUrl = await fetchRepositoryUrlAsync(ctx);\n } catch (err) {\n ctx.logger.error('Failed to refresh clone URL, falling back to the original one', err);\n }\n\n await shallowCloneRepositoryAsync({\n logger: ctx.logger,\n archiveSource: {\n ...ctx.job.projectArchive,\n repositoryUrl,\n },\n destinationDirectory,\n });\n }\n}\n\nasync function fetchRepositoryUrlAsync(ctx: BuildContext<Job>): Promise<string> {\n const taskId = nullthrows(ctx.env.EAS_BUILD_ID, 'EAS_BUILD_ID is not set');\n const expoApiServerURL = nullthrows(ctx.env.__API_SERVER_URL, '__API_SERVER_URL is not set');\n const robotAccessToken = nullthrows(\n ctx.job.secrets?.robotAccessToken,\n 'robot access token is not set'\n );\n\n const response = await turtleFetch(\n new URL(`/v2/github/fetch-github-repository-url`, expoApiServerURL).toString(),\n 'POST',\n {\n json: { taskId },\n headers: {\n Authorization: `Bearer ${robotAccessToken}`,\n },\n timeout: 20000,\n retries: 3,\n logger: ctx.logger,\n }\n );\n\n if (!response.ok) {\n const textResult = await asyncResult(response.text());\n throw new Error(`Unexpected response from server (${response.status}): ${textResult.value}`);\n }\n\n const jsonResult = await asyncResult(response.json());\n if (!jsonResult.ok) {\n throw new Error(\n `Expected JSON response from server (${response.status}): ${jsonResult.reason}`\n );\n }\n\n const dataResult = z\n .object({\n data: z.object({\n repositoryUrl: z.string().url(),\n }),\n })\n .safeParse(jsonResult.value);\n if (!dataResult.success) {\n throw new Error(`Unexpected response from server (${response.status}): ${dataResult.error}`);\n }\n\n return dataResult.data.data.repositoryUrl;\n}\n\nexport async function downloadAndUnpackProjectFromTarGzAsync<TJob extends Job>(\n ctx: BuildContext<TJob>,\n projectArchiveUrl: string,\n destinationDirectory: string\n): Promise<void> {\n const projectTarball = path.join(ctx.workingdir, 'project.tar.gz');\n try {\n await downloadFile(projectArchiveUrl, projectTarball, { retry: 3 });\n } catch (err: any) {\n ctx.reportError?.('Failed to download project archive', err, {\n extras: { buildId: ctx.env.EAS_BUILD_ID },\n });\n throw err;\n }\n\n await unpackTarGzAsync({\n destination: destinationDirectory,\n source: projectTarball,\n logger: ctx.logger,\n });\n}\n\nasync function prepareProjectSourcesLocallyAsync<TJob extends Job>(\n ctx: BuildContext<TJob>,\n projectArchivePath: string,\n destinationDirectory: string\n): Promise<void> {\n const projectTarball = path.join(ctx.workingdir, 'project.tar.gz');\n await fs.copy(projectArchivePath, projectTarball);\n\n await unpackTarGzAsync({\n destination: destinationDirectory,\n source: projectTarball,\n logger: ctx.logger,\n });\n}\n\nasync function unpackTarGzAsync({\n logger,\n source,\n destination,\n}: {\n logger: bunyan;\n source: string;\n destination: string;\n}): Promise<void> {\n await spawn('tar', ['-C', destination, '--strip-components', '1', '-zxf', source], {\n logger,\n });\n}\n"]}
|
package/dist/common/setup.js
CHANGED
|
@@ -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.setupAsync =
|
|
6
|
+
exports.setupAsync = setupAsync;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
9
9
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
@@ -114,7 +114,6 @@ async function setupAsync(ctx) {
|
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
exports.setupAsync = setupAsync;
|
|
118
117
|
async function runExpoDoctor(ctx) {
|
|
119
118
|
ctx.logger.info('Running "expo doctor"');
|
|
120
119
|
let timeout;
|
package/dist/common/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/common/setup.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,sEAAwD;AACxD,wDAA0B;AAC1B,uDAA+E;AAC/E,4DAA+D;AAC/D,4DAAoC;AAEpC,4DAAkE;AAGlE,8CAAmE;AACnE,0CAAwD;AACxD,0CAAiD;AACjD,4DAIiC;AACjC,8CAAmD;AACnD,kDAA4E;AAE5E,qDAA8D;AAC9D,+DAAqF;AACrF,yDAA+F;AAE/F,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7C,MAAM,oCAAoC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5D,MAAM,oCAAoC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE5D,MAAM,kBAAmB,SAAQ,KAAK;CAAG;AACzC,MAAM,+BAAgC,SAAQ,KAAK;CAAG;AAE/C,KAAK,UAAU,UAAU,CAAwB,GAAuB;;IAC7E,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,IAAA,2CAA0B,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,IAAA,uBAAe,EAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,wBAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,gBAAgB,KAAK,WAAW,EAAE,CAAC;YAClF,MAAM,IAAA,2CAAgC,EAAC,GAA4B,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,qBAAY,CAAC,qBAAqB,EAAE,CAAC;YAC/D,6CAA6C;YAC7C,wCAAwC;YACxC,MAAM,GAAG,GAAG,MAAM,IAAA,kDAA+B,EAAC,GAAG,EAAE;gBACrD,GAAG,EAAE,GAAG,CAAC,8BAA8B,EAAE;aAC1C,CAAC,CAAC;YACH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,IAAA,wBAAgB,EAAC,GAAG,EAAE,YAAI,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACnF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,IAAA,yBAAe,EAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC;QAC1E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;;QAClE,MAAM,WAAW,GACf,MAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,UAAU,mCACxB,IAAA,iDAAgC,EAAC;YAC/B,WAAW;YACX,WAAW,EAAE,MAAM;SACpB,CAAC,CAAC;QAEL,MAAM,kBAAkB,GACtB,MAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,kBAAkB,mCAChC,IAAA,iDAAgC,EAAC;YAC/B,WAAW;YACX,WAAW,EAAE,cAAc;SAC5B,CAAC,CAAC;QAEL,MAAM,2BAA2B,CAAC,GAAG,EAAE;YACrC,iBAAiB,EAAE,IAAA,wCAAuB,EAAC;gBACzC,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,UAAU,EAAE,WAAW;gBACvB,kBAAkB;aACnB,CAAC;SACH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,sBAAsB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,qBAAY,CAAC,qBAAqB,EAAE,CAAC;QAC/D,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;;YAChE,IAAI,CAAC,CAAA,MAAA,GAAG,CAAC,SAAS,CAAC,GAAG,0CAAE,gBAAgB,CAAA,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,wBAAQ,CAAC,GAAG,EAAE,CAAC;gBAC9E,MAAM,IAAI,KAAK,CACb,4LAA4L,CAC7L,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,CAAA,MAAA,GAAG,CAAC,SAAS,CAAC,OAAO,0CAAE,OAAO,CAAA,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,wBAAQ,CAAC,OAAO,EAAE,CAAC;gBAC7E,MAAM,IAAI,KAAK,CACb,8KAA8K,CAC/K,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,2CAAwB,EAAC;gBAC7D,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EAAE,GAAG,CAAC,8BAA8B,EAAE;gBACzC,mBAAmB,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;aACzE,CAAC,CAAC;YACH,GAAG,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,CAAC,CAAA,MAAA,WAAW,CAAC,YAAY,0CAAE,IAAI,CAAA,CAAC;IACxD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kCAAkC,IAAI,cAAc,EAAE,CAAC;QAClE,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;YAC7D,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;oBACtC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;gBAC7D,CAAC;gBACD,GAAG,CAAC,yBAAyB,EAAE,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAjGD,gCAiGC;AAED,KAAK,UAAU,aAAa,CAAmB,GAAuB;IACpE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACzC,IAAI,OAAmC,CAAC;IACxC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,aAAa,GAAG,MAAM,IAAA,mCAAkB,GAAE,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAA,sBAAK,EAAC,KAAK,EAAE,CAAC,GAAG,UAAU,EAAE,aAAa,CAAC,EAAE;YAC3D,GAAG,EAAE,GAAG,CAAC,8BAA8B,EAAE;YACzC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,GAAG,CAAC,GAAG;SACb,CAAC,CAAC;QACH,OAAO,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;;YAC9B,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,IAAI,GAAG,IAAA,oBAAU,EAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,MAAM,IAAA,kDAAsC,EAAC,IAAI,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,MAAA,GAAG,CAAC,WAAW,oDAAG,yBAAyB,EAAE,SAAS,EAAE;gBACtD,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE;aAC1C,CAAC,CAAC;QACL,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC/B,OAAO,MAAM,OAAO,CAAC;IACvB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,GAAuB,EACvB,EACE,iBAAiB,GAGlB;IAED,IAAI,WAAuC,CAAC;IAC5C,IAAI,WAAuC,CAAC;IAC5C,IAAI,YAAY,GAAY,KAAK,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,+BAA+B,GAAG,CACtC,MAAM,IAAA,8CAAwB,EAAC;YAC7B,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,cAAc,EAAE,GAAG,EAAE;gBACnB,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,CAAC;gBACD,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;YACD,GAAG,EAAE,IAAA,wCAAkB,EAAC,GAAG,CAAC;YAC5B,iBAAiB;SAClB,CAAC,CACH,CAAC,YAAY,CAAC;QAEf,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,kMAAkM,CACnM,CAAC;QACJ,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAEzC,WAAW,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;;YAClC,YAAY,GAAG,IAAI,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,wOAAwO,CACzO,CAAC;YACF,MAAM,IAAI,GAAG,IAAA,oBAAU,EAAC,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,MAAM,IAAA,kDAAsC,EAAC,IAAI,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,MAAA,GAAG,CAAC,WAAW,oDAAG,qDAAqD,EAAE,SAAS,EAAE;gBAClF,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE;aAC1C,CAAC,CAAC;QACL,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAEzC,MAAM,+BAA+B,CAAC;IACxC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,+BAA+B,CACvC,uGAAuG,CACxG,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,IAAI,WAAW,EAAE,CAAC;YAChB,YAAY,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,YAAY,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,GAAsB,EACtB,SAAqB;;IAErB,IACE,CAAA,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,GAAG,0CAAE,SAAS;QAChC,GAAG,CAAC,GAAG,CAAC,oBAAoB;QAC5B,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAC9D,CAAC;QACD,MAAM,oBAAoB,GACxB,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;YACvF,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,qBAAY,CAAC,qBAAqB,CAAC;QACjF,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,aAAa,IAAI,oBAAoB,EAAE,CAAC;YAC1C,YAAY;gBACV,mOAAmO,CAAC;QACxO,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,YAAY,GAAG,8EAA8E,CAAC;QAChG,CAAC;aAAM,IAAI,oBAAoB,EAAE,CAAC;YAChC,YAAY;gBACV,yOAAyO,CAAC;QAC9O,CAAC;QACD,MAAM,IAAI,wBAAe,CACvB,+BAA+B,EAC/B,iDAAiD,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,8DAA8D,GAAG,CAAC,GAAG,CAAC,oBAAoB,MAAM,YAAY,mDAAmD,CAC9O,CAAC;IACJ,CAAC;SAAM,IAAI,GAAG,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,CAAA,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,GAAG,0CAAE,SAAS,CAAA,EAAE,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACrF,GAAG,CAAC,yBAAyB,EAAE,CAAC;IAClC,CAAC;AACH,CAAC","sourcesContent":["import path from 'path';\n\nimport spawn, { SpawnResult } from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\nimport { BuildJob, BuildPhase, Ios, Job, Platform } from '@expo/eas-build-job';\nimport { BuildTrigger } from '@expo/eas-build-job/dist/common';\nimport nullthrows from 'nullthrows';\nimport { ExpoConfig } from '@expo/config';\nimport { UserFacingError } from '@expo/eas-build-job/dist/errors';\n\nimport { BuildContext } from '../context';\nimport { deleteXcodeEnvLocalIfExistsAsync } from '../ios/xcodeEnv';\nimport { Hook, runHookIfPresent } from '../utils/hooks';\nimport { setUpNpmrcAsync } from '../utils/npmrc';\nimport {\n shouldUseFrozenLockfile,\n isAtLeastNpm7Async,\n getPackageVersionFromPackageJson,\n} from '../utils/packageManager';\nimport { readPackageJson } from '../utils/project';\nimport { getParentAndDescendantProcessPidsAsync } from '../utils/processes';\n\nimport { prepareProjectSourcesAsync } from './projectSources';\nimport { installDependenciesAsync, resolvePackagerDir } from './installDependencies';\nimport { resolveEnvFromBuildProfileAsync, runEasBuildInternalAsync } from './easBuildInternal';\n\nconst MAX_EXPO_DOCTOR_TIMEOUT_MS = 30 * 1000;\nconst INSTALL_DEPENDENCIES_WARN_TIMEOUT_MS = 15 * 60 * 1000;\nconst INSTALL_DEPENDENCIES_KILL_TIMEOUT_MS = 30 * 60 * 1000;\n\nclass DoctorTimeoutError extends Error {}\nclass InstallDependenciesTimeoutError extends Error {}\n\nexport async function setupAsync<TJob extends BuildJob>(ctx: BuildContext<TJob>): Promise<void> {\n await ctx.runBuildPhase(BuildPhase.PREPARE_PROJECT, async () => {\n await prepareProjectSourcesAsync(ctx);\n await setUpNpmrcAsync(ctx, ctx.logger);\n if (ctx.job.platform === Platform.IOS && ctx.env.EAS_BUILD_RUNNER === 'eas-build') {\n await deleteXcodeEnvLocalIfExistsAsync(ctx as BuildContext<Ios.Job>);\n }\n if (ctx.job.triggeredBy === BuildTrigger.GIT_BASED_INTEGRATION) {\n // We need to setup envs from eas.json before\n // eas-build-pre-install hook is called.\n const env = await resolveEnvFromBuildProfileAsync(ctx, {\n cwd: ctx.getReactNativeProjectDirectory(),\n });\n ctx.updateEnv(env);\n }\n });\n\n await ctx.runBuildPhase(BuildPhase.PRE_INSTALL_HOOK, async () => {\n await runHookIfPresent(ctx, Hook.PRE_INSTALL);\n });\n\n const packageJson = await ctx.runBuildPhase(BuildPhase.READ_PACKAGE_JSON, async () => {\n ctx.logger.info('Using package.json:');\n const packageJson = readPackageJson(ctx.getReactNativeProjectDirectory());\n ctx.logger.info(JSON.stringify(packageJson, null, 2));\n return packageJson;\n });\n\n await ctx.runBuildPhase(BuildPhase.INSTALL_DEPENDENCIES, async () => {\n const expoVersion =\n ctx.metadata?.sdkVersion ??\n getPackageVersionFromPackageJson({\n packageJson,\n packageName: 'expo',\n });\n\n const reactNativeVersion =\n ctx.metadata?.reactNativeVersion ??\n getPackageVersionFromPackageJson({\n packageJson,\n packageName: 'react-native',\n });\n\n await runInstallDependenciesAsync(ctx, {\n useFrozenLockfile: shouldUseFrozenLockfile({\n env: ctx.env,\n sdkVersion: expoVersion,\n reactNativeVersion,\n }),\n });\n });\n\n await ctx.runBuildPhase(BuildPhase.READ_APP_CONFIG, async () => {\n const appConfig = ctx.appConfig;\n ctx.logger.info('Using app configuration:');\n ctx.logger.info(JSON.stringify(appConfig, null, 2));\n await validateAppConfigAsync(ctx, appConfig);\n });\n\n if (ctx.job.triggeredBy === BuildTrigger.GIT_BASED_INTEGRATION) {\n await ctx.runBuildPhase(BuildPhase.EAS_BUILD_INTERNAL, async () => {\n if (!ctx.appConfig.ios?.bundleIdentifier && ctx.job.platform === Platform.IOS) {\n throw new Error(\n 'The \"ios.bundleIdentifier\" is required to be set in app config for builds triggered by GitHub integration. Learn more: https://docs.expo.dev/versions/latest/config/app/#bundleidentifier.'\n );\n }\n if (!ctx.appConfig.android?.package && ctx.job.platform === Platform.ANDROID) {\n throw new Error(\n 'The \"android.package\" is required to be set in app config for builds triggered by GitHub integration. Learn more: https://docs.expo.dev/versions/latest/config/app/#package.'\n );\n }\n const { newJob, newMetadata } = await runEasBuildInternalAsync({\n job: ctx.job,\n env: ctx.env,\n logger: ctx.logger,\n cwd: ctx.getReactNativeProjectDirectory(),\n projectRootOverride: ctx.env.EAS_NO_VCS ? ctx.buildDirectory : undefined,\n });\n ctx.updateJobInformation(newJob, newMetadata);\n });\n }\n\n const hasExpoPackage = !!packageJson.dependencies?.expo;\n if (!ctx.env.EAS_BUILD_DISABLE_EXPO_DOCTOR_STEP && hasExpoPackage) {\n await ctx.runBuildPhase(BuildPhase.RUN_EXPO_DOCTOR, async () => {\n try {\n await runExpoDoctor(ctx);\n } catch (err) {\n if (err instanceof DoctorTimeoutError) {\n ctx.logger.error(err.message);\n } else {\n ctx.logger.error({ err }, 'Command \"expo doctor\" failed.');\n }\n ctx.markBuildPhaseHasWarnings();\n }\n });\n }\n}\n\nasync function runExpoDoctor<TJob extends Job>(ctx: BuildContext<TJob>): Promise<SpawnResult> {\n ctx.logger.info('Running \"expo doctor\"');\n let timeout: NodeJS.Timeout | undefined;\n let timedOut = false;\n const isAtLeastNpm7 = await isAtLeastNpm7Async();\n try {\n const argsPrefix = isAtLeastNpm7 ? ['-y'] : [];\n const promise = spawn('npx', [...argsPrefix, 'expo-doctor'], {\n cwd: ctx.getReactNativeProjectDirectory(),\n logger: ctx.logger,\n env: ctx.env,\n });\n timeout = setTimeout(async () => {\n timedOut = true;\n const ppid = nullthrows(promise.child.pid);\n const pids = await getParentAndDescendantProcessPidsAsync(ppid);\n pids.forEach((pid) => {\n process.kill(pid);\n });\n ctx.reportError?.(`\"expo doctor\" timed out`, undefined, {\n extras: { buildId: ctx.env.EAS_BUILD_ID },\n });\n }, MAX_EXPO_DOCTOR_TIMEOUT_MS);\n return await promise;\n } catch (err: any) {\n if (timedOut) {\n throw new DoctorTimeoutError('\"expo doctor\" timed out, skipping...');\n }\n throw err;\n } finally {\n if (timeout) {\n clearTimeout(timeout);\n }\n }\n}\n\nasync function runInstallDependenciesAsync<TJob extends Job>(\n ctx: BuildContext<TJob>,\n {\n useFrozenLockfile,\n }: {\n useFrozenLockfile: boolean;\n }\n): Promise<void> {\n let warnTimeout: NodeJS.Timeout | undefined;\n let killTimeout: NodeJS.Timeout | undefined;\n let killTimedOut: boolean = false;\n try {\n const installDependenciesSpawnPromise = (\n await installDependenciesAsync({\n packageManager: ctx.packageManager,\n env: ctx.env,\n logger: ctx.logger,\n infoCallbackFn: () => {\n if (warnTimeout) {\n warnTimeout.refresh();\n }\n if (killTimeout) {\n killTimeout.refresh();\n }\n },\n cwd: resolvePackagerDir(ctx),\n useFrozenLockfile,\n })\n ).spawnPromise;\n\n warnTimeout = setTimeout(() => {\n ctx.logger.warn(\n '\"Install dependencies\" phase takes longer then expected and it did not produce any logs in the past 15 minutes. Consider evaluating your package.json file for possible issues with dependencies'\n );\n }, INSTALL_DEPENDENCIES_WARN_TIMEOUT_MS);\n\n killTimeout = setTimeout(async () => {\n killTimedOut = true;\n ctx.logger.error(\n '\"Install dependencies\" phase takes a very long time and it did not produce any logs in the past 30 minutes. Most likely an unexpected error happened with your dependencies which caused the process to hang and it will be terminated'\n );\n const ppid = nullthrows(installDependenciesSpawnPromise.child.pid);\n const pids = await getParentAndDescendantProcessPidsAsync(ppid);\n pids.forEach((pid) => {\n process.kill(pid);\n });\n ctx.reportError?.('\"Install dependencies\" phase takes a very long time', undefined, {\n extras: { buildId: ctx.env.EAS_BUILD_ID },\n });\n }, INSTALL_DEPENDENCIES_KILL_TIMEOUT_MS);\n\n await installDependenciesSpawnPromise;\n } catch (err: any) {\n if (killTimedOut) {\n throw new InstallDependenciesTimeoutError(\n '\"Install dependencies\" phase was inactive for over 30 minutes. Please evaluate your package.json file'\n );\n }\n throw err;\n } finally {\n if (warnTimeout) {\n clearTimeout(warnTimeout);\n }\n if (killTimeout) {\n clearTimeout(killTimeout);\n }\n }\n}\n\nasync function validateAppConfigAsync(\n ctx: BuildContext<Job>,\n appConfig: ExpoConfig\n): Promise<void> {\n if (\n appConfig?.extra?.eas?.projectId &&\n ctx.env.EAS_BUILD_PROJECT_ID &&\n appConfig.extra.eas.projectId !== ctx.env.EAS_BUILD_PROJECT_ID\n ) {\n const isUsingDynamicConfig =\n (await fs.pathExists(path.join(ctx.getReactNativeProjectDirectory(), 'app.config.ts'))) ||\n (await fs.pathExists(path.join(ctx.getReactNativeProjectDirectory(), 'app.config.js')));\n const isGitHubBuild = ctx.job.triggeredBy === BuildTrigger.GIT_BASED_INTEGRATION;\n let extraMessage = '';\n if (isGitHubBuild && isUsingDynamicConfig) {\n extraMessage =\n 'Make sure you connected your GitHub repository to the correct Expo project and if you are using environment variables to switch between projects in app.config.js/app.config.ts remember to set those variables in eas.json too. ';\n } else if (isGitHubBuild) {\n extraMessage = 'Make sure you connected your GitHub repository to the correct Expo project. ';\n } else if (isUsingDynamicConfig) {\n extraMessage =\n 'If you are using environment variables to switch between projects in app.config.js/app.config.ts, make sure those variables are also set inside EAS Build. You can do that using \"env\" field in eas.json or EAS environment variables. ';\n }\n throw new UserFacingError(\n 'EAS_BUILD_PROJECT_ID_MISMATCH',\n `The value of the \"extra.eas.projectId\" field (${appConfig.extra.eas.projectId}) in the app config does not match the current project id (${ctx.env.EAS_BUILD_PROJECT_ID}). ${extraMessage}Learn more: https://expo.fyi/eas-config-mismatch.`\n );\n } else if (ctx.env.EAS_BUILD_PROJECT_ID && !appConfig?.extra?.eas?.projectId) {\n ctx.logger.error(`The \"extra.eas.projectId\" field is missing from your app config.`);\n ctx.markBuildPhaseHasWarnings();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/common/setup.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\n\nimport spawn, { SpawnResult } from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\nimport { BuildJob, BuildPhase, Ios, Job, Platform } from '@expo/eas-build-job';\nimport { BuildTrigger } from '@expo/eas-build-job/dist/common';\nimport nullthrows from 'nullthrows';\nimport { ExpoConfig } from '@expo/config';\nimport { UserFacingError } from '@expo/eas-build-job/dist/errors';\n\nimport { BuildContext } from '../context';\nimport { deleteXcodeEnvLocalIfExistsAsync } from '../ios/xcodeEnv';\nimport { Hook, runHookIfPresent } from '../utils/hooks';\nimport { setUpNpmrcAsync } from '../utils/npmrc';\nimport {\n shouldUseFrozenLockfile,\n isAtLeastNpm7Async,\n getPackageVersionFromPackageJson,\n} from '../utils/packageManager';\nimport { readPackageJson } from '../utils/project';\nimport { getParentAndDescendantProcessPidsAsync } from '../utils/processes';\n\nimport { prepareProjectSourcesAsync } from './projectSources';\nimport { installDependenciesAsync, resolvePackagerDir } from './installDependencies';\nimport { resolveEnvFromBuildProfileAsync, runEasBuildInternalAsync } from './easBuildInternal';\n\nconst MAX_EXPO_DOCTOR_TIMEOUT_MS = 30 * 1000;\nconst INSTALL_DEPENDENCIES_WARN_TIMEOUT_MS = 15 * 60 * 1000;\nconst INSTALL_DEPENDENCIES_KILL_TIMEOUT_MS = 30 * 60 * 1000;\n\nclass DoctorTimeoutError extends Error {}\nclass InstallDependenciesTimeoutError extends Error {}\n\nexport async function setupAsync<TJob extends BuildJob>(ctx: BuildContext<TJob>): Promise<void> {\n await ctx.runBuildPhase(BuildPhase.PREPARE_PROJECT, async () => {\n await prepareProjectSourcesAsync(ctx);\n await setUpNpmrcAsync(ctx, ctx.logger);\n if (ctx.job.platform === Platform.IOS && ctx.env.EAS_BUILD_RUNNER === 'eas-build') {\n await deleteXcodeEnvLocalIfExistsAsync(ctx as BuildContext<Ios.Job>);\n }\n if (ctx.job.triggeredBy === BuildTrigger.GIT_BASED_INTEGRATION) {\n // We need to setup envs from eas.json before\n // eas-build-pre-install hook is called.\n const env = await resolveEnvFromBuildProfileAsync(ctx, {\n cwd: ctx.getReactNativeProjectDirectory(),\n });\n ctx.updateEnv(env);\n }\n });\n\n await ctx.runBuildPhase(BuildPhase.PRE_INSTALL_HOOK, async () => {\n await runHookIfPresent(ctx, Hook.PRE_INSTALL);\n });\n\n const packageJson = await ctx.runBuildPhase(BuildPhase.READ_PACKAGE_JSON, async () => {\n ctx.logger.info('Using package.json:');\n const packageJson = readPackageJson(ctx.getReactNativeProjectDirectory());\n ctx.logger.info(JSON.stringify(packageJson, null, 2));\n return packageJson;\n });\n\n await ctx.runBuildPhase(BuildPhase.INSTALL_DEPENDENCIES, async () => {\n const expoVersion =\n ctx.metadata?.sdkVersion ??\n getPackageVersionFromPackageJson({\n packageJson,\n packageName: 'expo',\n });\n\n const reactNativeVersion =\n ctx.metadata?.reactNativeVersion ??\n getPackageVersionFromPackageJson({\n packageJson,\n packageName: 'react-native',\n });\n\n await runInstallDependenciesAsync(ctx, {\n useFrozenLockfile: shouldUseFrozenLockfile({\n env: ctx.env,\n sdkVersion: expoVersion,\n reactNativeVersion,\n }),\n });\n });\n\n await ctx.runBuildPhase(BuildPhase.READ_APP_CONFIG, async () => {\n const appConfig = ctx.appConfig;\n ctx.logger.info('Using app configuration:');\n ctx.logger.info(JSON.stringify(appConfig, null, 2));\n await validateAppConfigAsync(ctx, appConfig);\n });\n\n if (ctx.job.triggeredBy === BuildTrigger.GIT_BASED_INTEGRATION) {\n await ctx.runBuildPhase(BuildPhase.EAS_BUILD_INTERNAL, async () => {\n if (!ctx.appConfig.ios?.bundleIdentifier && ctx.job.platform === Platform.IOS) {\n throw new Error(\n 'The \"ios.bundleIdentifier\" is required to be set in app config for builds triggered by GitHub integration. Learn more: https://docs.expo.dev/versions/latest/config/app/#bundleidentifier.'\n );\n }\n if (!ctx.appConfig.android?.package && ctx.job.platform === Platform.ANDROID) {\n throw new Error(\n 'The \"android.package\" is required to be set in app config for builds triggered by GitHub integration. Learn more: https://docs.expo.dev/versions/latest/config/app/#package.'\n );\n }\n const { newJob, newMetadata } = await runEasBuildInternalAsync({\n job: ctx.job,\n env: ctx.env,\n logger: ctx.logger,\n cwd: ctx.getReactNativeProjectDirectory(),\n projectRootOverride: ctx.env.EAS_NO_VCS ? ctx.buildDirectory : undefined,\n });\n ctx.updateJobInformation(newJob, newMetadata);\n });\n }\n\n const hasExpoPackage = !!packageJson.dependencies?.expo;\n if (!ctx.env.EAS_BUILD_DISABLE_EXPO_DOCTOR_STEP && hasExpoPackage) {\n await ctx.runBuildPhase(BuildPhase.RUN_EXPO_DOCTOR, async () => {\n try {\n await runExpoDoctor(ctx);\n } catch (err) {\n if (err instanceof DoctorTimeoutError) {\n ctx.logger.error(err.message);\n } else {\n ctx.logger.error({ err }, 'Command \"expo doctor\" failed.');\n }\n ctx.markBuildPhaseHasWarnings();\n }\n });\n }\n}\n\nasync function runExpoDoctor<TJob extends Job>(ctx: BuildContext<TJob>): Promise<SpawnResult> {\n ctx.logger.info('Running \"expo doctor\"');\n let timeout: NodeJS.Timeout | undefined;\n let timedOut = false;\n const isAtLeastNpm7 = await isAtLeastNpm7Async();\n try {\n const argsPrefix = isAtLeastNpm7 ? ['-y'] : [];\n const promise = spawn('npx', [...argsPrefix, 'expo-doctor'], {\n cwd: ctx.getReactNativeProjectDirectory(),\n logger: ctx.logger,\n env: ctx.env,\n });\n timeout = setTimeout(async () => {\n timedOut = true;\n const ppid = nullthrows(promise.child.pid);\n const pids = await getParentAndDescendantProcessPidsAsync(ppid);\n pids.forEach((pid) => {\n process.kill(pid);\n });\n ctx.reportError?.(`\"expo doctor\" timed out`, undefined, {\n extras: { buildId: ctx.env.EAS_BUILD_ID },\n });\n }, MAX_EXPO_DOCTOR_TIMEOUT_MS);\n return await promise;\n } catch (err: any) {\n if (timedOut) {\n throw new DoctorTimeoutError('\"expo doctor\" timed out, skipping...');\n }\n throw err;\n } finally {\n if (timeout) {\n clearTimeout(timeout);\n }\n }\n}\n\nasync function runInstallDependenciesAsync<TJob extends Job>(\n ctx: BuildContext<TJob>,\n {\n useFrozenLockfile,\n }: {\n useFrozenLockfile: boolean;\n }\n): Promise<void> {\n let warnTimeout: NodeJS.Timeout | undefined;\n let killTimeout: NodeJS.Timeout | undefined;\n let killTimedOut: boolean = false;\n try {\n const installDependenciesSpawnPromise = (\n await installDependenciesAsync({\n packageManager: ctx.packageManager,\n env: ctx.env,\n logger: ctx.logger,\n infoCallbackFn: () => {\n if (warnTimeout) {\n warnTimeout.refresh();\n }\n if (killTimeout) {\n killTimeout.refresh();\n }\n },\n cwd: resolvePackagerDir(ctx),\n useFrozenLockfile,\n })\n ).spawnPromise;\n\n warnTimeout = setTimeout(() => {\n ctx.logger.warn(\n '\"Install dependencies\" phase takes longer then expected and it did not produce any logs in the past 15 minutes. Consider evaluating your package.json file for possible issues with dependencies'\n );\n }, INSTALL_DEPENDENCIES_WARN_TIMEOUT_MS);\n\n killTimeout = setTimeout(async () => {\n killTimedOut = true;\n ctx.logger.error(\n '\"Install dependencies\" phase takes a very long time and it did not produce any logs in the past 30 minutes. Most likely an unexpected error happened with your dependencies which caused the process to hang and it will be terminated'\n );\n const ppid = nullthrows(installDependenciesSpawnPromise.child.pid);\n const pids = await getParentAndDescendantProcessPidsAsync(ppid);\n pids.forEach((pid) => {\n process.kill(pid);\n });\n ctx.reportError?.('\"Install dependencies\" phase takes a very long time', undefined, {\n extras: { buildId: ctx.env.EAS_BUILD_ID },\n });\n }, INSTALL_DEPENDENCIES_KILL_TIMEOUT_MS);\n\n await installDependenciesSpawnPromise;\n } catch (err: any) {\n if (killTimedOut) {\n throw new InstallDependenciesTimeoutError(\n '\"Install dependencies\" phase was inactive for over 30 minutes. Please evaluate your package.json file'\n );\n }\n throw err;\n } finally {\n if (warnTimeout) {\n clearTimeout(warnTimeout);\n }\n if (killTimeout) {\n clearTimeout(killTimeout);\n }\n }\n}\n\nasync function validateAppConfigAsync(\n ctx: BuildContext<Job>,\n appConfig: ExpoConfig\n): Promise<void> {\n if (\n appConfig?.extra?.eas?.projectId &&\n ctx.env.EAS_BUILD_PROJECT_ID &&\n appConfig.extra.eas.projectId !== ctx.env.EAS_BUILD_PROJECT_ID\n ) {\n const isUsingDynamicConfig =\n (await fs.pathExists(path.join(ctx.getReactNativeProjectDirectory(), 'app.config.ts'))) ||\n (await fs.pathExists(path.join(ctx.getReactNativeProjectDirectory(), 'app.config.js')));\n const isGitHubBuild = ctx.job.triggeredBy === BuildTrigger.GIT_BASED_INTEGRATION;\n let extraMessage = '';\n if (isGitHubBuild && isUsingDynamicConfig) {\n extraMessage =\n 'Make sure you connected your GitHub repository to the correct Expo project and if you are using environment variables to switch between projects in app.config.js/app.config.ts remember to set those variables in eas.json too. ';\n } else if (isGitHubBuild) {\n extraMessage = 'Make sure you connected your GitHub repository to the correct Expo project. ';\n } else if (isUsingDynamicConfig) {\n extraMessage =\n 'If you are using environment variables to switch between projects in app.config.js/app.config.ts, make sure those variables are also set inside EAS Build. You can do that using \"env\" field in eas.json or EAS environment variables. ';\n }\n throw new UserFacingError(\n 'EAS_BUILD_PROJECT_ID_MISMATCH',\n `The value of the \"extra.eas.projectId\" field (${appConfig.extra.eas.projectId}) in the app config does not match the current project id (${ctx.env.EAS_BUILD_PROJECT_ID}). ${extraMessage}Learn more: https://expo.fyi/eas-config-mismatch.`\n );\n } else if (ctx.env.EAS_BUILD_PROJECT_ID && !appConfig?.extra?.eas?.projectId) {\n ctx.logger.error(`The \"extra.eas.projectId\" field is missing from your app config.`);\n ctx.markBuildPhaseHasWarnings();\n }\n}\n"]}
|
package/dist/context.d.ts
CHANGED
package/dist/gcs/client.d.ts
CHANGED
package/dist/gcs/retry.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.retryOnGCSUploadFailure =
|
|
3
|
+
exports.retryOnGCSUploadFailure = retryOnGCSUploadFailure;
|
|
4
4
|
// based on https://github.com/googleapis/nodejs-storage/blob/8ab50804fc7bae3bbd159bbb4adf65c02215b11b/src/storage.ts#L284-L320
|
|
5
5
|
async function retryOnGCSUploadFailure(fn, { retries, retryIntervalMs, }) {
|
|
6
6
|
return await retry(fn, {
|
|
@@ -18,7 +18,6 @@ async function retryOnGCSUploadFailure(fn, { retries, retryIntervalMs, }) {
|
|
|
18
18
|
},
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
exports.retryOnGCSUploadFailure = retryOnGCSUploadFailure;
|
|
22
21
|
/**
|
|
23
22
|
* Wrapper used to execute an inner function and possibly retry it if it throws and error
|
|
24
23
|
* @param fn Function to be executed and retried in case of error
|
package/dist/gcs/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/gcs/retry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/gcs/retry.ts"],"names":[],"mappings":";;AAUA,0DAuBC;AAxBD,+HAA+H;AACxH,KAAK,UAAU,uBAAuB,CAC3C,EAA+C,EAC/C,EACE,OAAO,EACP,eAAe,GACwE;IAEzF,OAAO,MAAM,KAAK,CAAC,EAAE,EAAE;QACrB,OAAO;QACP,eAAe;QACf,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE;YACxB,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,WAAW;gBACtB,CAAC,CAAC,IAAI,KAAK,WAAW;gBACtB,CAAC,CAAC,IAAI,KAAK,YAAY;gBACvB,CAAC,CAAC,IAAI,KAAK,WAAW;gBACtB,CAAC,CAAC,IAAI,KAAK,OAAO,CACnB,CAAC;QACJ,CAAC;QACD,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,KAAK,CAClB,EAA+C,EAC/C,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAgB;IAErF,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IACtB,SAAS,CAAC;QACR,IAAI,CAAC;YACH,YAAY,IAAI,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC;YACpC,IAAI,YAAY,GAAG,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { Response } from 'node-fetch';\n\nexport interface RetryOptions {\n retries: number;\n retryIntervalMs: number;\n shouldRetryOnError: (error: any) => boolean;\n shouldRetryOnResponse: (response: Response) => boolean;\n}\n\n// based on https://github.com/googleapis/nodejs-storage/blob/8ab50804fc7bae3bbd159bbb4adf65c02215b11b/src/storage.ts#L284-L320\nexport async function retryOnGCSUploadFailure(\n fn: (attemptCount: number) => Promise<Response>,\n {\n retries,\n retryIntervalMs,\n }: { retries: RetryOptions['retries']; retryIntervalMs: RetryOptions['retryIntervalMs'] }\n): Promise<Response> {\n return await retry(fn, {\n retries,\n retryIntervalMs,\n shouldRetryOnError: (e) => {\n return (\n e.code === 'ENOTFOUND' ||\n e.code === 'EAI_AGAIN' ||\n e.code === 'ECONNRESET' ||\n e.code === 'ETIMEDOUT' ||\n e.code === 'EPIPE'\n );\n },\n shouldRetryOnResponse: (resp) => {\n return [408, 429, 500, 502, 503, 504].includes(resp.status);\n },\n });\n}\n\n/**\n * Wrapper used to execute an inner function and possibly retry it if it throws and error\n * @param fn Function to be executed and retried in case of error\n * @param retries How many times at most should the function be retried\n * @param retryIntervalMs Time interval between the retries\n * @param shouldRetryOnError Function that determines if the function should be retried based on the error thrown\n * @param shouldRetryOnResponse Function that determines if the function should be retried based on the response\n */\nasync function retry(\n fn: (attemptCount: number) => Promise<Response>,\n { retries, retryIntervalMs, shouldRetryOnError, shouldRetryOnResponse }: RetryOptions\n): Promise<Response> {\n let attemptCount = -1;\n for (;;) {\n try {\n attemptCount += 1;\n const resp = await fn(attemptCount);\n if (attemptCount < retries && shouldRetryOnResponse(resp)) {\n await new Promise((res) => setTimeout(res, retryIntervalMs));\n } else {\n return resp;\n }\n } catch (err: any) {\n if (attemptCount === retries || !shouldRetryOnError(err)) {\n throw err;\n }\n await new Promise((res) => setTimeout(res, retryIntervalMs));\n }\n }\n}\n"]}
|
package/dist/generic.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runGenericJobAsync =
|
|
3
|
+
exports.runGenericJobAsync = runGenericJobAsync;
|
|
4
4
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
5
5
|
const steps_1 = require("@expo/steps");
|
|
6
6
|
const results_1 = require("@expo/results");
|
|
@@ -41,5 +41,4 @@ async function runGenericJobAsync(ctx, { expoApiV2BaseUrl }) {
|
|
|
41
41
|
});
|
|
42
42
|
return { runResult, buildWorkflow: workflow };
|
|
43
43
|
}
|
|
44
|
-
exports.runGenericJobAsync = runGenericJobAsync;
|
|
45
44
|
//# sourceMappingURL=generic.js.map
|
package/dist/generic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":";;AAWA,gDAwCC;AAnDD,uDAA0D;AAC1D,uCAA+F;AAC/F,2CAAoD;AAGpD,4DAAqE;AACrE,uDAAuD;AACvD,6DAA0D;AAC1D,iEAAiE;AACjE,6CAA6D;AAEtD,KAAK,UAAU,kBAAkB,CACtC,GAA8B,EAC9B,EAAE,gBAAgB,EAAgC;IAElD,MAAM,cAAc,GAAG,IAAI,uCAAkB,CAAC,GAAG,CAAC,CAAC;IAEnD,MAAM,IAAA,2CAA0B,EAAC,GAAG,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAE7E,MAAM,aAAa,GAAG,IAAI,8BAAsB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAExE,MAAM,MAAM,GAAG,IAAI,yBAAiB,CAAC,aAAa,EAAE;QAClD,iBAAiB,EAAE,IAAA,8BAAe,EAAC,cAAc,CAAC;QAClD,sBAAsB,EAAE,IAAA,wCAAoB,EAAC,cAAc,CAAC;QAC5D,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC3F,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,UAAe,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC7D,IAAI,UAAU,YAAY,cAAM,CAAC,kBAAkB,EAAE,CAAC;gBACpD,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACpC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,MAAM,UAAU,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAW,EAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAE7D,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,IAAA,oCAA0B,EAAC,aAAa,EAAE;YAC9C,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AAChD,CAAC","sourcesContent":["import { BuildPhase, Generic } from '@expo/eas-build-job';\nimport { BuildStepGlobalContext, BuildWorkflow, errors, StepsConfigParser } from '@expo/steps';\nimport { Result, asyncResult } from '@expo/results';\n\nimport { BuildContext } from './context';\nimport { prepareProjectSourcesAsync } from './common/projectSources';\nimport { getEasFunctions } from './steps/easFunctions';\nimport { CustomBuildContext } from './customBuildContext';\nimport { getEasFunctionGroups } from './steps/easFunctionGroups';\nimport { uploadJobOutputsToWwwAsync } from './utils/outputs';\n\nexport async function runGenericJobAsync(\n ctx: BuildContext<Generic.Job>,\n { expoApiV2BaseUrl }: { expoApiV2BaseUrl: string }\n): Promise<{ runResult: Result<void>; buildWorkflow: BuildWorkflow }> {\n const customBuildCtx = new CustomBuildContext(ctx);\n\n await prepareProjectSourcesAsync(ctx, customBuildCtx.projectSourceDirectory);\n\n const globalContext = new BuildStepGlobalContext(customBuildCtx, false);\n\n const parser = new StepsConfigParser(globalContext, {\n externalFunctions: getEasFunctions(customBuildCtx),\n externalFunctionGroups: getEasFunctionGroups(customBuildCtx),\n steps: ctx.job.steps,\n });\n\n const workflow = await ctx.runBuildPhase(BuildPhase.PARSE_CUSTOM_WORKFLOW_CONFIG, async () => {\n try {\n return await parser.parseAsync();\n } catch (parseError: any) {\n ctx.logger.error('Failed to parse the job definition file.');\n if (parseError instanceof errors.BuildWorkflowError) {\n for (const err of parseError.errors) {\n ctx.logger.error({ err });\n }\n }\n throw parseError;\n }\n });\n\n const runResult = await asyncResult(workflow.executeAsync());\n\n await ctx.runBuildPhase(BuildPhase.COMPLETE_JOB, async () => {\n await uploadJobOutputsToWwwAsync(globalContext, {\n logger: ctx.logger,\n expoApiV2BaseUrl,\n });\n });\n\n return { runResult, buildWorkflow: workflow };\n}\n"]}
|
package/dist/ios/configure.js
CHANGED
|
@@ -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.evaluateTemplateString = evaluateTemplateString;
|
|
7
|
+
exports.configureXcodeProject = configureXcodeProject;
|
|
7
8
|
const path_1 = __importDefault(require("path"));
|
|
8
9
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
9
10
|
const uniq_1 = __importDefault(require("lodash/uniq"));
|
|
@@ -24,7 +25,6 @@ async function configureXcodeProject(ctx, { credentials, buildConfiguration, })
|
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
exports.configureXcodeProject = configureXcodeProject;
|
|
28
28
|
async function configureCredentialsAsync(ctx, { credentials, buildConfiguration, }) {
|
|
29
29
|
const targetNames = Object.keys(credentials.targetProvisioningProfiles);
|
|
30
30
|
for (const targetName of targetNames) {
|
|
@@ -89,5 +89,4 @@ function evaluateTemplateString(s, buildSettings) {
|
|
|
89
89
|
}
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
|
-
exports.evaluateTemplateString = evaluateTemplateString;
|
|
93
92
|
//# sourceMappingURL=configure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/ios/configure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/ios/configure.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\n\nimport { IOSConfig } from '@expo/config-plugins';\nimport { Ios } from '@expo/eas-build-job';\nimport uniq from 'lodash/uniq';\nimport fs from 'fs-extra';\nimport plist from '@expo/plist';\n\nimport { BuildContext } from '../context';\n\nimport { Credentials } from './credentials/manager';\n\nasync function configureXcodeProject(\n ctx: BuildContext<Ios.Job>,\n {\n credentials,\n buildConfiguration,\n }: {\n credentials: Credentials;\n buildConfiguration: string;\n }\n): Promise<void> {\n ctx.logger.info('Configuring Xcode project');\n await configureCredentialsAsync(ctx, {\n credentials,\n buildConfiguration,\n });\n const { version } = ctx.job;\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n if (version?.appVersion || version?.buildNumber) {\n await updateVersionsAsync(ctx, {\n targetNames: Object.keys(credentials.targetProvisioningProfiles),\n buildConfiguration,\n });\n }\n}\n\nasync function configureCredentialsAsync(\n ctx: BuildContext<Ios.Job>,\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 ctx.logger.info(\n `Assigning provisioning profile '${profile.name}' (Apple Team ID: ${profile.teamId}) to target '${targetName}'`\n );\n IOSConfig.ProvisioningProfile.setProvisioningProfileForPbxproj(\n ctx.getReactNativeProjectDirectory(),\n {\n targetName,\n profileName: profile.name,\n appleTeamId: profile.teamId,\n buildConfiguration,\n }\n );\n }\n}\n\nasync function updateVersionsAsync(\n ctx: BuildContext<Ios.Job>,\n {\n targetNames,\n buildConfiguration,\n }: {\n targetNames: string[];\n buildConfiguration: string;\n }\n): Promise<void> {\n const project = IOSConfig.XcodeUtils.getPbxproj(ctx.getReactNativeProjectDirectory());\n const iosDir = path.join(ctx.getReactNativeProjectDirectory(), '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 ctx.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 (ctx.job.version?.buildNumber) {\n infoPlist.CFBundleVersion = ctx.job.version?.buildNumber;\n }\n if (ctx.job.version?.appVersion) {\n infoPlist.CFBundleShortVersionString = ctx.job.version?.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\nexport { configureXcodeProject };\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);
|