@expo/build-tools 1.0.272 → 18.0.1
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/LICENSE +21 -100
- package/README.md +1 -1
- package/dist/android/credentials.js +2 -3
- package/dist/android/expoUpdates.js +5 -8
- package/dist/android/gradle.js +6 -8
- package/dist/android/gradleConfig.js +2 -3
- package/dist/buildErrors/buildErrorHandlers.js +4 -3
- package/dist/buildErrors/detectError.js +11 -11
- package/dist/buildErrors/errors.types.js +0 -1
- package/dist/buildErrors/userErrorHandlers.js +2 -3
- package/dist/builders/android.js +19 -24
- package/dist/builders/common.js +0 -1
- package/dist/builders/custom.js +9 -11
- package/dist/builders/index.js +0 -1
- package/dist/builders/ios.js +24 -29
- package/dist/common/eagerBundle.js +3 -4
- package/dist/common/easBuildInternal.js +5 -7
- package/dist/common/fastlane.js +0 -1
- package/dist/common/git.js +0 -1
- package/dist/common/installDependencies.d.ts +1 -1
- package/dist/common/installDependencies.js +1 -2
- package/dist/common/prebuild.js +3 -5
- package/dist/common/projectSources.js +12 -16
- package/dist/common/setup.js +28 -33
- package/dist/context.d.ts +1 -1
- package/dist/context.js +33 -25
- package/dist/customBuildContext.d.ts +1 -1
- package/dist/customBuildContext.js +32 -10
- package/dist/gcs/LoggerStream.d.ts +1 -1
- package/dist/gcs/LoggerStream.js +22 -14
- package/dist/gcs/__unit__/gcs.test.js +5 -8
- package/dist/gcs/client.d.ts +1 -1
- package/dist/gcs/client.js +28 -19
- package/dist/gcs/retry.js +4 -5
- package/dist/generic.d.ts +1 -1
- package/dist/generic.js +5 -7
- package/dist/index.d.ts +1 -1
- package/dist/index.js +19 -10
- package/dist/ios/configure.d.ts +1 -1
- package/dist/ios/configure.js +9 -11
- package/dist/ios/credentials/distributionCertificate.js +1 -3
- package/dist/ios/credentials/keychain.js +9 -8
- package/dist/ios/credentials/manager.d.ts +1 -1
- package/dist/ios/credentials/manager.js +24 -13
- package/dist/ios/credentials/provisioningProfile.js +12 -6
- package/dist/ios/expoUpdates.js +7 -11
- package/dist/ios/fastfile.d.ts +1 -1
- package/dist/ios/fastfile.js +0 -1
- package/dist/ios/fastlane.d.ts +1 -1
- package/dist/ios/fastlane.js +8 -9
- package/dist/ios/gymfile.d.ts +1 -1
- package/dist/ios/gymfile.js +1 -2
- package/dist/ios/pod.js +1 -2
- package/dist/ios/resign.js +3 -5
- package/dist/ios/resolve.js +1 -2
- package/dist/ios/tvos.js +1 -3
- package/dist/ios/xcodeBuildLogs.d.ts +1 -1
- package/dist/ios/xcodeBuildLogs.js +5 -7
- package/dist/ios/xcodeEnv.js +1 -2
- package/dist/ios/xcpretty.js +11 -7
- package/dist/steps/easFunctionGroups.js +0 -1
- package/dist/steps/easFunctions.js +26 -25
- package/dist/steps/functionGroups/build.d.ts +1 -1
- package/dist/steps/functionGroups/build.js +24 -26
- package/dist/steps/functionGroups/maestroTest.js +7 -9
- package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js +6 -9
- package/dist/steps/functions/ccacheStats.js +4 -6
- package/dist/steps/functions/checkout.js +0 -1
- package/dist/steps/functions/configureAndroidVersion.js +3 -5
- package/dist/steps/functions/configureEASUpdateIfInstalled.js +4 -6
- package/dist/steps/functions/configureIosCredentials.js +3 -4
- package/dist/steps/functions/configureIosVersion.js +4 -6
- package/dist/steps/functions/createSubmissionEntity.js +2 -4
- package/dist/steps/functions/downloadArtifact.d.ts +1 -1
- package/dist/steps/functions/downloadArtifact.js +7 -9
- package/dist/steps/functions/downloadBuild.d.ts +1 -1
- package/dist/steps/functions/downloadBuild.js +10 -12
- package/dist/steps/functions/eagerBundle.js +2 -4
- package/dist/steps/functions/findAndUploadBuildArtifacts.js +5 -8
- package/dist/steps/functions/generateGymfileFromTemplate.js +6 -8
- package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js +0 -1
- package/dist/steps/functions/injectAndroidCredentials.js +3 -4
- package/dist/steps/functions/installMaestro.js +3 -4
- package/dist/steps/functions/installNodeModules.d.ts +1 -1
- package/dist/steps/functions/installNodeModules.js +12 -12
- package/dist/steps/functions/installPods.js +0 -1
- package/dist/steps/functions/internalMaestroTest.js +16 -16
- package/dist/steps/functions/prebuild.js +3 -5
- package/dist/steps/functions/repack.d.ts +1 -1
- package/dist/steps/functions/repack.js +25 -19
- package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js +1 -2
- package/dist/steps/functions/resolveBuildConfig.js +0 -1
- package/dist/steps/functions/restoreBuildCache.d.ts +1 -1
- package/dist/steps/functions/restoreBuildCache.js +8 -10
- package/dist/steps/functions/restoreCache.d.ts +1 -1
- package/dist/steps/functions/restoreCache.js +34 -26
- package/dist/steps/functions/runFastlane.js +0 -1
- package/dist/steps/functions/runGradle.js +2 -3
- package/dist/steps/functions/saveBuildCache.d.ts +1 -1
- package/dist/steps/functions/saveBuildCache.js +6 -7
- package/dist/steps/functions/saveCache.d.ts +1 -1
- package/dist/steps/functions/saveCache.js +26 -18
- package/dist/steps/functions/sendSlackMessage.js +1 -3
- package/dist/steps/functions/startAndroidEmulator.js +5 -7
- package/dist/steps/functions/startCuttlefishDevice.js +32 -10
- package/dist/steps/functions/startIosSimulator.js +8 -11
- package/dist/steps/functions/uploadArtifact.js +4 -6
- package/dist/steps/functions/uploadToAsc.d.ts +2 -0
- package/dist/steps/functions/uploadToAsc.js +287 -0
- package/dist/steps/functions/useNpmToken.js +3 -4
- package/dist/steps/utils/android/expoUpdates.js +3 -5
- package/dist/steps/utils/android/gradle.d.ts +1 -1
- package/dist/steps/utils/android/gradle.js +6 -7
- package/dist/steps/utils/android/gradleConfig.js +4 -5
- package/dist/steps/utils/cache.js +0 -1
- package/dist/steps/utils/expoUpdates.d.ts +1 -1
- package/dist/steps/utils/expoUpdates.js +15 -18
- package/dist/steps/utils/ios/AscApiClient.d.ts +250 -0
- package/dist/steps/utils/ios/AscApiClient.js +299 -0
- package/dist/steps/utils/ios/configure.js +4 -5
- package/dist/steps/utils/ios/credentials/credentials.js +0 -1
- package/dist/steps/utils/ios/credentials/distributionCertificate.js +1 -3
- package/dist/steps/utils/ios/credentials/keychain.js +8 -8
- package/dist/steps/utils/ios/credentials/manager.js +24 -13
- package/dist/steps/utils/ios/credentials/provisioningProfile.js +11 -6
- package/dist/steps/utils/ios/expoUpdates.js +4 -7
- package/dist/steps/utils/ios/fastlane.d.ts +1 -1
- package/dist/steps/utils/ios/fastlane.js +3 -4
- package/dist/steps/utils/ios/resolve.js +1 -2
- package/dist/steps/utils/ios/tvos.js +1 -3
- package/dist/steps/utils/ios/xcpretty.js +11 -7
- package/dist/steps/utils/slackMessageDynamicFields.js +0 -1
- package/dist/templates/EasBuildConfigureVersionGradle.js +0 -1
- package/dist/templates/EasBuildGradle.js +0 -1
- package/dist/templates/EasBuildInjectAndroidCredentialsGradle.js +0 -1
- package/dist/templates/FastfileResign.js +0 -1
- package/dist/templates/GymfileArchive.js +0 -1
- package/dist/templates/GymfileSimulator.js +0 -1
- package/dist/templates/npmrc.js +0 -1
- package/dist/utils/AndroidEmulatorUtils.js +20 -22
- package/dist/utils/IosSimulatorUtils.js +9 -11
- package/dist/utils/appConfig.js +1 -2
- package/dist/utils/artifacts.d.ts +1 -1
- package/dist/utils/artifacts.js +7 -8
- package/dist/utils/cacheKey.js +21 -12
- package/dist/utils/diffFingerprintsAsync.d.ts +1 -1
- package/dist/utils/diffFingerprintsAsync.js +0 -1
- package/dist/utils/environmentSecrets.js +3 -4
- package/dist/utils/expoFingerprintCli.js +5 -6
- package/dist/utils/expoUpdates.d.ts +1 -2
- package/dist/utils/expoUpdates.js +19 -33
- package/dist/utils/expoUpdatesCli.js +20 -11
- package/dist/utils/files.js +23 -15
- package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js +27 -21
- package/dist/utils/fingerprint.js +0 -1
- package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js +0 -1
- package/dist/utils/hooks.js +1 -3
- package/dist/utils/isModernExpoUpdatesCLIWithRuntimeVersionCommandSupported.d.ts +1 -0
- package/dist/utils/isModernExpoUpdatesCLIWithRuntimeVersionCommandSupported.js +14 -0
- package/dist/utils/npmrc.js +2 -3
- package/dist/utils/outputs.d.ts +1 -1
- package/dist/utils/outputs.js +2 -5
- package/dist/utils/packageManager.js +22 -14
- package/dist/utils/prepareBuildExecutable.js +1 -2
- package/dist/utils/processes.js +2 -3
- package/dist/utils/project.js +1 -2
- package/dist/utils/promiseRetryWithCondition.js +0 -1
- package/dist/utils/resolveRuntimeVersionAsync.d.ts +1 -1
- package/dist/utils/resolveRuntimeVersionAsync.js +4 -6
- package/dist/utils/retry.js +2 -3
- package/dist/utils/retryOnDNSFailure.js +0 -1
- package/dist/utils/stepMetrics.d.ts +1 -1
- package/dist/utils/stepMetrics.js +0 -1
- package/dist/utils/strings.js +1 -3
- package/dist/utils/turtleFetch.d.ts +1 -1
- package/dist/utils/turtleFetch.js +2 -2
- package/package.json +25 -22
- package/dist/android/credentials.js.map +0 -1
- package/dist/android/expoUpdates.js.map +0 -1
- package/dist/android/gradle.js.map +0 -1
- package/dist/android/gradleConfig.js.map +0 -1
- package/dist/buildErrors/buildErrorHandlers.js.map +0 -1
- package/dist/buildErrors/detectError.js.map +0 -1
- package/dist/buildErrors/errors.types.js.map +0 -1
- package/dist/buildErrors/userErrorHandlers.js.map +0 -1
- package/dist/builders/android.js.map +0 -1
- package/dist/builders/common.js.map +0 -1
- package/dist/builders/custom.js.map +0 -1
- package/dist/builders/index.js.map +0 -1
- package/dist/builders/ios.js.map +0 -1
- package/dist/common/eagerBundle.js.map +0 -1
- package/dist/common/easBuildInternal.js.map +0 -1
- package/dist/common/fastlane.js.map +0 -1
- package/dist/common/git.js.map +0 -1
- package/dist/common/installDependencies.js.map +0 -1
- package/dist/common/prebuild.js.map +0 -1
- package/dist/common/projectSources.js.map +0 -1
- package/dist/common/setup.js.map +0 -1
- package/dist/context.js.map +0 -1
- package/dist/customBuildContext.js.map +0 -1
- package/dist/gcs/LoggerStream.js.map +0 -1
- package/dist/gcs/__unit__/gcs.test.js.map +0 -1
- package/dist/gcs/client.js.map +0 -1
- package/dist/gcs/retry.js.map +0 -1
- package/dist/generic.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/ios/configure.js.map +0 -1
- package/dist/ios/credentials/distributionCertificate.js.map +0 -1
- package/dist/ios/credentials/keychain.js.map +0 -1
- package/dist/ios/credentials/manager.js.map +0 -1
- package/dist/ios/credentials/provisioningProfile.js.map +0 -1
- package/dist/ios/expoUpdates.js.map +0 -1
- package/dist/ios/fastfile.js.map +0 -1
- package/dist/ios/fastlane.js.map +0 -1
- package/dist/ios/gymfile.js.map +0 -1
- package/dist/ios/pod.js.map +0 -1
- package/dist/ios/resign.js.map +0 -1
- package/dist/ios/resolve.js.map +0 -1
- package/dist/ios/tvos.js.map +0 -1
- package/dist/ios/xcodeBuildLogs.js.map +0 -1
- package/dist/ios/xcodeEnv.js.map +0 -1
- package/dist/ios/xcpretty.js.map +0 -1
- package/dist/steps/easFunctionGroups.js.map +0 -1
- package/dist/steps/easFunctions.js.map +0 -1
- package/dist/steps/functionGroups/build.js.map +0 -1
- package/dist/steps/functionGroups/maestroTest.js.map +0 -1
- package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js.map +0 -1
- package/dist/steps/functions/ccacheStats.js.map +0 -1
- package/dist/steps/functions/checkout.js.map +0 -1
- package/dist/steps/functions/configureAndroidVersion.js.map +0 -1
- package/dist/steps/functions/configureEASUpdateIfInstalled.js.map +0 -1
- package/dist/steps/functions/configureIosCredentials.js.map +0 -1
- package/dist/steps/functions/configureIosVersion.js.map +0 -1
- package/dist/steps/functions/createSubmissionEntity.js.map +0 -1
- package/dist/steps/functions/downloadArtifact.js.map +0 -1
- package/dist/steps/functions/downloadBuild.js.map +0 -1
- package/dist/steps/functions/eagerBundle.js.map +0 -1
- package/dist/steps/functions/findAndUploadBuildArtifacts.js.map +0 -1
- package/dist/steps/functions/generateGymfileFromTemplate.js.map +0 -1
- package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js.map +0 -1
- package/dist/steps/functions/injectAndroidCredentials.js.map +0 -1
- package/dist/steps/functions/installMaestro.js.map +0 -1
- package/dist/steps/functions/installNodeModules.js.map +0 -1
- package/dist/steps/functions/installPods.js.map +0 -1
- package/dist/steps/functions/internalMaestroTest.js.map +0 -1
- package/dist/steps/functions/prebuild.js.map +0 -1
- package/dist/steps/functions/repack.js.map +0 -1
- package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js.map +0 -1
- package/dist/steps/functions/resolveBuildConfig.js.map +0 -1
- package/dist/steps/functions/restoreBuildCache.js.map +0 -1
- package/dist/steps/functions/restoreCache.js.map +0 -1
- package/dist/steps/functions/runFastlane.js.map +0 -1
- package/dist/steps/functions/runGradle.js.map +0 -1
- package/dist/steps/functions/saveBuildCache.js.map +0 -1
- package/dist/steps/functions/saveCache.js.map +0 -1
- package/dist/steps/functions/sendSlackMessage.js.map +0 -1
- package/dist/steps/functions/startAndroidEmulator.js.map +0 -1
- package/dist/steps/functions/startCuttlefishDevice.js.map +0 -1
- package/dist/steps/functions/startIosSimulator.js.map +0 -1
- package/dist/steps/functions/uploadArtifact.js.map +0 -1
- package/dist/steps/functions/useNpmToken.js.map +0 -1
- package/dist/steps/utils/android/expoUpdates.js.map +0 -1
- package/dist/steps/utils/android/gradle.js.map +0 -1
- package/dist/steps/utils/android/gradleConfig.js.map +0 -1
- package/dist/steps/utils/cache.js.map +0 -1
- package/dist/steps/utils/expoUpdates.js.map +0 -1
- package/dist/steps/utils/ios/configure.js.map +0 -1
- package/dist/steps/utils/ios/credentials/credentials.js.map +0 -1
- package/dist/steps/utils/ios/credentials/distributionCertificate.js.map +0 -1
- package/dist/steps/utils/ios/credentials/keychain.js.map +0 -1
- package/dist/steps/utils/ios/credentials/manager.js.map +0 -1
- package/dist/steps/utils/ios/credentials/provisioningProfile.js.map +0 -1
- package/dist/steps/utils/ios/expoUpdates.js.map +0 -1
- package/dist/steps/utils/ios/fastlane.js.map +0 -1
- package/dist/steps/utils/ios/resolve.js.map +0 -1
- package/dist/steps/utils/ios/tvos.js.map +0 -1
- package/dist/steps/utils/ios/xcpretty.js.map +0 -1
- package/dist/steps/utils/slackMessageDynamicFields.js.map +0 -1
- package/dist/templates/EasBuildConfigureVersionGradle.js.map +0 -1
- package/dist/templates/EasBuildGradle.js.map +0 -1
- package/dist/templates/EasBuildInjectAndroidCredentialsGradle.js.map +0 -1
- package/dist/templates/FastfileResign.js.map +0 -1
- package/dist/templates/GymfileArchive.js.map +0 -1
- package/dist/templates/GymfileSimulator.js.map +0 -1
- package/dist/templates/npmrc.js.map +0 -1
- package/dist/utils/AndroidEmulatorUtils.js.map +0 -1
- package/dist/utils/IosSimulatorUtils.js.map +0 -1
- package/dist/utils/appConfig.js.map +0 -1
- package/dist/utils/artifacts.js.map +0 -1
- package/dist/utils/cacheKey.js.map +0 -1
- package/dist/utils/diffFingerprintsAsync.js.map +0 -1
- package/dist/utils/environmentSecrets.js.map +0 -1
- package/dist/utils/expoFingerprintCli.js.map +0 -1
- package/dist/utils/expoUpdates.js.map +0 -1
- package/dist/utils/expoUpdatesCli.js.map +0 -1
- package/dist/utils/files.js.map +0 -1
- package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js.map +0 -1
- package/dist/utils/fingerprint.js.map +0 -1
- package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js.map +0 -1
- package/dist/utils/hooks.js.map +0 -1
- package/dist/utils/npmrc.js.map +0 -1
- package/dist/utils/outputs.js.map +0 -1
- package/dist/utils/packageManager.js.map +0 -1
- package/dist/utils/prepareBuildExecutable.js.map +0 -1
- package/dist/utils/processes.js.map +0 -1
- package/dist/utils/project.js.map +0 -1
- package/dist/utils/promiseRetryWithCondition.js.map +0 -1
- package/dist/utils/resolveRuntimeVersionAsync.js.map +0 -1
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/retryOnDNSFailure.js.map +0 -1
- package/dist/utils/stepMetrics.js.map +0 -1
- package/dist/utils/strings.js.map +0 -1
- package/dist/utils/turtleFetch.js.map +0 -1
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -30,22 +40,22 @@ exports.createRestoreCacheFunction = createRestoreCacheFunction;
|
|
|
30
40
|
exports.downloadCacheAsync = downloadCacheAsync;
|
|
31
41
|
exports.downloadPublicCacheAsync = downloadPublicCacheAsync;
|
|
32
42
|
exports.decompressCacheAsync = decompressCacheAsync;
|
|
43
|
+
const results_1 = require("@expo/results");
|
|
44
|
+
const steps_1 = require("@expo/steps");
|
|
33
45
|
const fs_1 = __importDefault(require("fs"));
|
|
46
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
47
|
+
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
34
48
|
const os_1 = __importDefault(require("os"));
|
|
35
49
|
const path_1 = __importDefault(require("path"));
|
|
36
50
|
const stream_1 = __importDefault(require("stream"));
|
|
37
|
-
const util_1 = require("util");
|
|
38
51
|
const tar = __importStar(require("tar"));
|
|
39
|
-
const
|
|
52
|
+
const util_1 = require("util");
|
|
40
53
|
const zod_1 = __importDefault(require("zod"));
|
|
41
|
-
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
42
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
43
|
-
const results_1 = require("@expo/results");
|
|
44
|
-
const retryOnDNSFailure_1 = require("../../utils/retryOnDNSFailure");
|
|
45
54
|
const artifacts_1 = require("../../utils/artifacts");
|
|
46
|
-
const cache_1 = require("../utils/cache");
|
|
47
|
-
const turtleFetch_1 = require("../../utils/turtleFetch");
|
|
48
55
|
const cacheKey_1 = require("../../utils/cacheKey");
|
|
56
|
+
const retryOnDNSFailure_1 = require("../../utils/retryOnDNSFailure");
|
|
57
|
+
const turtleFetch_1 = require("../../utils/turtleFetch");
|
|
58
|
+
const cache_1 = require("../utils/cache");
|
|
49
59
|
const streamPipeline = (0, util_1.promisify)(stream_1.default.pipeline);
|
|
50
60
|
function createRestoreCacheFunction() {
|
|
51
61
|
return new steps_1.BuildFunction({
|
|
@@ -77,7 +87,6 @@ function createRestoreCacheFunction() {
|
|
|
77
87
|
}),
|
|
78
88
|
],
|
|
79
89
|
fn: async (stepsCtx, { env, inputs, outputs }) => {
|
|
80
|
-
var _a, _b, _c;
|
|
81
90
|
const { logger } = stepsCtx;
|
|
82
91
|
try {
|
|
83
92
|
if (stepsCtx.global.staticContext.job.platform) {
|
|
@@ -86,15 +95,15 @@ function createRestoreCacheFunction() {
|
|
|
86
95
|
}
|
|
87
96
|
const paths = zod_1.default
|
|
88
97
|
.array(zod_1.default.string())
|
|
89
|
-
.parse((
|
|
90
|
-
.filter(
|
|
98
|
+
.parse((inputs.path.value ?? '').split(/[\r\n]+/))
|
|
99
|
+
.filter(path => path.length > 0);
|
|
91
100
|
const key = zod_1.default.string().parse(inputs.key.value);
|
|
92
101
|
const restoreKeys = zod_1.default
|
|
93
102
|
.array(zod_1.default.string())
|
|
94
|
-
.parse((
|
|
95
|
-
.filter(
|
|
103
|
+
.parse((inputs.restore_keys.value ?? '').split(/[\r\n]+/))
|
|
104
|
+
.filter(key => key !== '');
|
|
96
105
|
const jobId = (0, nullthrows_1.default)(env.EAS_BUILD_ID, 'EAS_BUILD_ID is not set');
|
|
97
|
-
const robotAccessToken = (0, nullthrows_1.default)(
|
|
106
|
+
const robotAccessToken = (0, nullthrows_1.default)(stepsCtx.global.staticContext.job.secrets?.robotAccessToken, 'robotAccessToken is not set');
|
|
98
107
|
const { archivePath, matchedKey } = await downloadCacheAsync({
|
|
99
108
|
logger,
|
|
100
109
|
jobId,
|
|
@@ -222,21 +231,21 @@ async function decompressCacheAsync({ archivePath, workingDirectory, verbose, lo
|
|
|
222
231
|
logger.info(`Extracting cache to ${workingDirectory}:`);
|
|
223
232
|
}
|
|
224
233
|
// First, extract everything to the working directory
|
|
225
|
-
const fileHandle = await fs_1.default.promises.open(archivePath, 'r');
|
|
226
234
|
const extractedFiles = [];
|
|
227
|
-
await
|
|
235
|
+
await tar.extract({
|
|
236
|
+
file: archivePath,
|
|
228
237
|
cwd: workingDirectory,
|
|
229
238
|
onwarn: (code, message, data) => {
|
|
230
239
|
logger.warn({ code, data }, message);
|
|
231
240
|
},
|
|
232
241
|
preservePaths: true,
|
|
233
|
-
onReadEntry:
|
|
242
|
+
onReadEntry: entry => {
|
|
234
243
|
extractedFiles.push(entry.path);
|
|
235
244
|
if (verbose) {
|
|
236
245
|
logger.info(`- ${entry.path}`);
|
|
237
246
|
}
|
|
238
247
|
},
|
|
239
|
-
})
|
|
248
|
+
});
|
|
240
249
|
// Handle absolute paths that were prefixed with __absolute__
|
|
241
250
|
for (const extractedPath of extractedFiles) {
|
|
242
251
|
if (extractedPath.startsWith('__absolute__/')) {
|
|
@@ -265,4 +274,3 @@ async function decompressCacheAsync({ archivePath, workingDirectory, verbose, lo
|
|
|
265
274
|
await fs_1.default.promises.rm(absoluteDir, { recursive: true, force: true });
|
|
266
275
|
}
|
|
267
276
|
}
|
|
268
|
-
//# sourceMappingURL=restoreCache.js.map
|
|
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.runGradleFunction = runGradleFunction;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const assert_1 = __importDefault(require("assert"));
|
|
9
7
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
10
8
|
const steps_1 = require("@expo/steps");
|
|
9
|
+
const assert_1 = __importDefault(require("assert"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const gradle_1 = require("../utils/android/gradle");
|
|
12
12
|
const slackMessageDynamicFields_1 = require("../utils/slackMessageDynamicFields");
|
|
13
13
|
function runGradleFunction() {
|
|
@@ -64,4 +64,3 @@ function runGradleFunction() {
|
|
|
64
64
|
},
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
//# sourceMappingURL=runGradle.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BuildFunction } from '@expo/steps';
|
|
2
1
|
import { Platform } from '@expo/eas-build-job';
|
|
3
2
|
import { bunyan } from '@expo/logger';
|
|
3
|
+
import { BuildFunction } from '@expo/steps';
|
|
4
4
|
export declare function createSaveBuildCacheFunction(evictUsedBefore: Date): BuildFunction;
|
|
5
5
|
export declare function saveCcacheAsync({ logger, workingDirectory, platform, evictUsedBefore, env, secrets, }: {
|
|
6
6
|
logger: bunyan;
|
|
@@ -5,13 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createSaveBuildCacheFunction = createSaveBuildCacheFunction;
|
|
7
7
|
exports.saveCcacheAsync = saveCcacheAsync;
|
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
|
9
|
-
const steps_1 = require("@expo/steps");
|
|
10
8
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
11
9
|
const results_1 = require("@expo/results");
|
|
10
|
+
const steps_1 = require("@expo/steps");
|
|
11
|
+
const fs_1 = __importDefault(require("fs"));
|
|
12
12
|
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
13
|
-
const cacheKey_1 = require("../../utils/cacheKey");
|
|
14
13
|
const saveCache_1 = require("./saveCache");
|
|
14
|
+
const cacheKey_1 = require("../../utils/cacheKey");
|
|
15
15
|
function createSaveBuildCacheFunction(evictUsedBefore) {
|
|
16
16
|
return new steps_1.BuildFunction({
|
|
17
17
|
namespace: 'eas',
|
|
@@ -26,10 +26,10 @@ function createSaveBuildCacheFunction(evictUsedBefore) {
|
|
|
26
26
|
}),
|
|
27
27
|
],
|
|
28
28
|
fn: async (stepCtx, { env, inputs }) => {
|
|
29
|
-
var _a;
|
|
30
29
|
const { logger } = stepCtx;
|
|
31
30
|
const workingDirectory = stepCtx.workingDirectory;
|
|
32
|
-
const platform =
|
|
31
|
+
const platform = inputs.platform.value ??
|
|
32
|
+
stepCtx.global.staticContext.job.platform;
|
|
33
33
|
if (!platform || ![eas_build_job_1.Platform.ANDROID, eas_build_job_1.Platform.IOS].includes(platform)) {
|
|
34
34
|
throw new Error(`Unsupported platform: ${platform}. Platform must be "${eas_build_job_1.Platform.ANDROID}" or "${eas_build_job_1.Platform.IOS}"`);
|
|
35
35
|
}
|
|
@@ -62,7 +62,7 @@ async function saveCcacheAsync({ logger, workingDirectory, platform, evictUsedBe
|
|
|
62
62
|
const cacheKey = await (0, cacheKey_1.generateDefaultBuildCacheKeyAsync)(workingDirectory, platform);
|
|
63
63
|
logger.info(`Saving cache key: ${cacheKey}`);
|
|
64
64
|
const jobId = (0, nullthrows_1.default)(env.EAS_BUILD_ID, 'EAS_BUILD_ID is not set');
|
|
65
|
-
const robotAccessToken = (0, nullthrows_1.default)(secrets
|
|
65
|
+
const robotAccessToken = (0, nullthrows_1.default)(secrets?.robotAccessToken, 'Robot access token is required for cache operations');
|
|
66
66
|
const expoApiServerURL = (0, nullthrows_1.default)(env.__API_SERVER_URL, '__API_SERVER_URL is not set');
|
|
67
67
|
const cachePath = (0, cacheKey_1.getCcachePath)(env);
|
|
68
68
|
// Cache size can blow up over time over many builds, so evict stale files
|
|
@@ -98,4 +98,3 @@ async function saveCcacheAsync({ logger, workingDirectory, platform, evictUsedBe
|
|
|
98
98
|
logger.error({ err }, 'Failed to save cache');
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
//# sourceMappingURL=saveBuildCache.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Platform } from '@expo/eas-build-job';
|
|
1
2
|
import { bunyan } from '@expo/logger';
|
|
2
3
|
import { BuildFunction } from '@expo/steps';
|
|
3
|
-
import { Platform } from '@expo/eas-build-job';
|
|
4
4
|
export declare function createSaveCacheFunction(): BuildFunction;
|
|
5
5
|
export declare function uploadCacheAsync({ logger, jobId, expoApiServerURL, robotAccessToken, paths, key, archivePath, size, platform, }: {
|
|
6
6
|
logger: bunyan;
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -30,18 +40,18 @@ exports.createSaveCacheFunction = createSaveCacheFunction;
|
|
|
30
40
|
exports.uploadCacheAsync = uploadCacheAsync;
|
|
31
41
|
exports.uploadPublicCacheAsync = uploadPublicCacheAsync;
|
|
32
42
|
exports.compressCacheAsync = compressCacheAsync;
|
|
43
|
+
const results_1 = require("@expo/results");
|
|
44
|
+
const steps_1 = require("@expo/steps");
|
|
45
|
+
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
33
46
|
const fs_1 = __importDefault(require("fs"));
|
|
47
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
48
|
+
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
34
49
|
const os_1 = __importDefault(require("os"));
|
|
35
50
|
const path_1 = __importDefault(require("path"));
|
|
36
51
|
const tar = __importStar(require("tar"));
|
|
37
|
-
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
38
|
-
const steps_1 = require("@expo/steps");
|
|
39
52
|
const zod_1 = __importDefault(require("zod"));
|
|
40
|
-
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
41
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
42
|
-
const results_1 = require("@expo/results");
|
|
43
|
-
const retryOnDNSFailure_1 = require("../../utils/retryOnDNSFailure");
|
|
44
53
|
const artifacts_1 = require("../../utils/artifacts");
|
|
54
|
+
const retryOnDNSFailure_1 = require("../../utils/retryOnDNSFailure");
|
|
45
55
|
const cache_1 = require("../utils/cache");
|
|
46
56
|
function createSaveCacheFunction() {
|
|
47
57
|
return new steps_1.BuildFunction({
|
|
@@ -62,16 +72,15 @@ function createSaveCacheFunction() {
|
|
|
62
72
|
}),
|
|
63
73
|
],
|
|
64
74
|
fn: async (stepsCtx, { env, inputs }) => {
|
|
65
|
-
var _a, _b;
|
|
66
75
|
const { logger } = stepsCtx;
|
|
67
76
|
try {
|
|
68
77
|
const paths = zod_1.default
|
|
69
78
|
.array(zod_1.default.string())
|
|
70
|
-
.parse((
|
|
71
|
-
.filter(
|
|
79
|
+
.parse((inputs.path.value ?? '').split(/[\r\n]+/))
|
|
80
|
+
.filter(path => path.length > 0);
|
|
72
81
|
const key = zod_1.default.string().parse(inputs.key.value);
|
|
73
82
|
const jobId = (0, nullthrows_1.default)(env.EAS_BUILD_ID, 'EAS_BUILD_ID is not set');
|
|
74
|
-
const robotAccessToken = (0, nullthrows_1.default)(
|
|
83
|
+
const robotAccessToken = (0, nullthrows_1.default)(stepsCtx.global.staticContext.job.secrets?.robotAccessToken, 'robotAccessToken is not set');
|
|
75
84
|
const { archivePath } = await compressCacheAsync({
|
|
76
85
|
paths,
|
|
77
86
|
workingDirectory: stepsCtx.workingDirectory,
|
|
@@ -310,4 +319,3 @@ async function compressCacheAsync({ paths, workingDirectory, verbose, logger, })
|
|
|
310
319
|
}
|
|
311
320
|
return { archivePath };
|
|
312
321
|
}
|
|
313
|
-
//# sourceMappingURL=saveCache.js.map
|
|
@@ -30,7 +30,6 @@ function createSendSlackMessageFunction() {
|
|
|
30
30
|
}),
|
|
31
31
|
],
|
|
32
32
|
fn: async (stepCtx, { inputs, env }) => {
|
|
33
|
-
var _a;
|
|
34
33
|
const { logger } = stepCtx;
|
|
35
34
|
const slackMessage = inputs.message.value;
|
|
36
35
|
const slackPayload = inputs.payload.value;
|
|
@@ -40,7 +39,7 @@ function createSendSlackMessageFunction() {
|
|
|
40
39
|
if (slackMessage && slackPayload) {
|
|
41
40
|
throw new Error('You cannot specify both "message" input and "payload" input - choose one for the Slack message contents');
|
|
42
41
|
}
|
|
43
|
-
const slackHookUrl =
|
|
42
|
+
const slackHookUrl = inputs.slack_hook_url.value ?? env.SLACK_HOOK_URL;
|
|
44
43
|
if (!slackHookUrl) {
|
|
45
44
|
logger.warn('Slack webhook URL not provided - provide input "slack_hook_url" or set "SLACK_HOOK_URL" secret');
|
|
46
45
|
throw new Error('Sending Slack message failed - provide input "slack_hook_url" or set "SLACK_HOOK_URL" secret');
|
|
@@ -70,4 +69,3 @@ async function sendSlackMessageAsync({ logger, slackHookUrl, slackMessage, slack
|
|
|
70
69
|
}
|
|
71
70
|
logger.info('Slack message sent successfully');
|
|
72
71
|
}
|
|
73
|
-
//# sourceMappingURL=sendSlackMessage.js.map
|
|
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createStartAndroidEmulatorBuildFunction = createStartAndroidEmulatorBuildFunction;
|
|
7
|
+
const results_1 = require("@expo/results");
|
|
7
8
|
const steps_1 = require("@expo/steps");
|
|
8
9
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
9
|
-
const results_1 = require("@expo/results");
|
|
10
|
-
const retry_1 = require("../../utils/retry");
|
|
11
10
|
const AndroidEmulatorUtils_1 = require("../../utils/AndroidEmulatorUtils");
|
|
11
|
+
const retry_1 = require("../../utils/retry");
|
|
12
12
|
function createStartAndroidEmulatorBuildFunction() {
|
|
13
13
|
return new steps_1.BuildFunction({
|
|
14
14
|
namespace: 'eas',
|
|
@@ -41,7 +41,6 @@ function createStartAndroidEmulatorBuildFunction() {
|
|
|
41
41
|
}),
|
|
42
42
|
],
|
|
43
43
|
fn: async ({ logger }, { inputs, env }) => {
|
|
44
|
-
var _a;
|
|
45
44
|
try {
|
|
46
45
|
const availableDevices = await AndroidEmulatorUtils_1.AndroidEmulatorUtils.getAvailableDevicesAsync({ env });
|
|
47
46
|
logger.info(`Available Android devices:\n- ${availableDevices.join(`\n- `)}`);
|
|
@@ -66,14 +65,14 @@ function createStartAndroidEmulatorBuildFunction() {
|
|
|
66
65
|
logger,
|
|
67
66
|
retryOptions: {
|
|
68
67
|
retries: 3, // Retry 3 times
|
|
69
|
-
retryIntervalMs:
|
|
68
|
+
retryIntervalMs: 1_000,
|
|
70
69
|
},
|
|
71
70
|
});
|
|
72
71
|
logger.info('Creating emulator device');
|
|
73
72
|
await AndroidEmulatorUtils_1.AndroidEmulatorUtils.createAsync({
|
|
74
73
|
deviceName,
|
|
75
74
|
systemImagePackage,
|
|
76
|
-
deviceIdentifier: deviceIdentifier
|
|
75
|
+
deviceIdentifier: deviceIdentifier ?? null,
|
|
77
76
|
env,
|
|
78
77
|
logger,
|
|
79
78
|
});
|
|
@@ -87,7 +86,7 @@ function createStartAndroidEmulatorBuildFunction() {
|
|
|
87
86
|
serialId,
|
|
88
87
|
});
|
|
89
88
|
logger.info(`${deviceName} is ready.`);
|
|
90
|
-
const count = Number(
|
|
89
|
+
const count = Number(inputs.count.value ?? 1);
|
|
91
90
|
if (count > 1) {
|
|
92
91
|
logger.info(`Requested ${count} emulators, shutting down ${deviceName} for cloning.`);
|
|
93
92
|
await (0, turtle_spawn_1.default)('adb', ['-s', serialId, 'shell', 'reboot', '-p'], {
|
|
@@ -122,4 +121,3 @@ function createStartAndroidEmulatorBuildFunction() {
|
|
|
122
121
|
},
|
|
123
122
|
});
|
|
124
123
|
}
|
|
125
|
-
//# sourceMappingURL=startAndroidEmulator.js.map
|
|
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createStartCuttlefishDeviceBuildFunction = createStartCuttlefishDeviceBuildFunction;
|
|
7
|
+
const results_1 = require("@expo/results");
|
|
8
|
+
const steps_1 = require("@expo/steps");
|
|
9
|
+
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
7
10
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
11
|
const node_os_1 = __importDefault(require("node:os"));
|
|
9
12
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
-
const steps_1 = require("@expo/steps");
|
|
11
|
-
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
12
|
-
const results_1 = require("@expo/results");
|
|
13
13
|
const retry_1 = require("../../utils/retry");
|
|
14
14
|
// Needs to conform to https://github.com/google/android-cuttlefish/blob/928026d2833b3e326d9d3b4a9a477e522b37b825/base/cvd/cuttlefish/host/commands/cvd/cli/parser/load_config.proto#L29-L36.
|
|
15
15
|
// See example: https://github.com/google/android-cuttlefish/blob/928026d2833b3e326d9d3b4a9a477e522b37b825/base/cvd/cuttlefish/host/cvd_test_configs/main_phone.json
|
|
@@ -54,8 +54,7 @@ function createStartCuttlefishDeviceBuildFunction() {
|
|
|
54
54
|
}),
|
|
55
55
|
],
|
|
56
56
|
fn: async ({ logger }, { env, inputs }) => {
|
|
57
|
-
|
|
58
|
-
const count = Number((_a = inputs.count) !== null && _a !== void 0 ? _a : 1);
|
|
57
|
+
const count = Number(inputs.count ?? 1);
|
|
59
58
|
const dependencyCheck = await (0, results_1.asyncResult)(Promise.all([(0, turtle_spawn_1.default)('docker', ['--version'], { env }), (0, turtle_spawn_1.default)('cvdr', ['--help'], { env })]));
|
|
60
59
|
if (!dependencyCheck.ok) {
|
|
61
60
|
logger.error(dependencyCheck.reason, 'Cuttlefish requires Docker and cvdr, which are only available on the latest Android worker image. Add `image: latest` to your job configuration to use the latest image.');
|
|
@@ -81,7 +80,7 @@ function createStartCuttlefishDeviceBuildFunction() {
|
|
|
81
80
|
'us-docker.pkg.dev/android-cuttlefish-artifacts/cuttlefish-orchestration/cuttlefish-cloud-orchestrator:unstable',
|
|
82
81
|
], { env, logger });
|
|
83
82
|
// Wait a minute tops for cvdr to be ready
|
|
84
|
-
const readyDeadline = Date.now() +
|
|
83
|
+
const readyDeadline = Date.now() + 60_000;
|
|
85
84
|
let cvdrReady = false;
|
|
86
85
|
while (Date.now() < readyDeadline) {
|
|
87
86
|
const result = await (0, results_1.asyncResult)((0, turtle_spawn_1.default)('cvdr', ['list'], { env }));
|
|
@@ -91,14 +90,14 @@ function createStartCuttlefishDeviceBuildFunction() {
|
|
|
91
90
|
break;
|
|
92
91
|
}
|
|
93
92
|
// Chekc every second
|
|
94
|
-
await (0, retry_1.sleepAsync)(
|
|
93
|
+
await (0, retry_1.sleepAsync)(1_000);
|
|
95
94
|
}
|
|
96
95
|
if (!cvdrReady) {
|
|
97
96
|
throw new Error('Timed out waiting for Cuttlefish Orchestrator to be ready.');
|
|
98
97
|
}
|
|
99
98
|
logger.info('Creating CVD');
|
|
100
99
|
const args = [];
|
|
101
|
-
const cvdConfigJson =
|
|
100
|
+
const cvdConfigJson = env.CVD_CONFIG_JSON ?? JSON.stringify(CVD_CONFIG_JSON);
|
|
102
101
|
if (cvdConfigJson) {
|
|
103
102
|
const configJsonDirectory = await node_fs_1.default.promises.mkdtemp(node_path_1.default.join(node_os_1.default.tmpdir(), 'start_cuttlefish-'));
|
|
104
103
|
const configJsonPath = node_path_1.default.join(configJsonDirectory, 'config.json');
|
|
@@ -111,8 +110,31 @@ function createStartCuttlefishDeviceBuildFunction() {
|
|
|
111
110
|
await (0, turtle_spawn_1.default)('cvdr', ['create', ...args], { env, logger });
|
|
112
111
|
logger.info('Listing adb devices...');
|
|
113
112
|
await (0, turtle_spawn_1.default)('adb', ['devices'], { env, logger });
|
|
114
|
-
|
|
113
|
+
logger.info('Unlocking device...');
|
|
114
|
+
const unlockDeadline = Date.now() + 10_000;
|
|
115
|
+
let isUnlocked = false;
|
|
116
|
+
while (Date.now() < unlockDeadline) {
|
|
117
|
+
const dumpsysResult = await (0, results_1.asyncResult)((0, turtle_spawn_1.default)('adb', ['shell', 'dumpsys', 'window'], { env }));
|
|
118
|
+
if (dumpsysResult.ok) {
|
|
119
|
+
const match = dumpsysResult.value.stdout.match(/mDreamingLockscreen=(true|false)/);
|
|
120
|
+
if (match?.[1] === 'false') {
|
|
121
|
+
isUnlocked = true;
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
logger.warn(dumpsysResult.reason, 'Failed to query device lock state.');
|
|
127
|
+
}
|
|
128
|
+
await (0, turtle_spawn_1.default)('adb', ['shell', 'input', 'keyevent', '82'], { env, logger });
|
|
129
|
+
await (0, retry_1.sleepAsync)(1_000);
|
|
130
|
+
}
|
|
131
|
+
if (isUnlocked) {
|
|
132
|
+
logger.info('Device unlocked, returning to home screen');
|
|
133
|
+
await (0, turtle_spawn_1.default)('adb', ['shell', 'input', 'keyevent', '3'], { env, logger });
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
logger.warn('Timed out waiting for the device to unlock.');
|
|
137
|
+
}
|
|
115
138
|
},
|
|
116
139
|
});
|
|
117
140
|
}
|
|
118
|
-
//# sourceMappingURL=startCuttlefishDevice.js.map
|
|
@@ -28,14 +28,13 @@ function createStartIosSimulatorBuildFunction() {
|
|
|
28
28
|
}),
|
|
29
29
|
],
|
|
30
30
|
fn: async ({ logger }, { inputs, env }) => {
|
|
31
|
-
var _a, _b, _c;
|
|
32
31
|
try {
|
|
33
32
|
const availableDevices = await IosSimulatorUtils_1.IosSimulatorUtils.getAvailableDevicesAsync({
|
|
34
33
|
env,
|
|
35
34
|
filter: 'available',
|
|
36
35
|
});
|
|
37
36
|
logger.info(`Available Simulator devices:\n- ${availableDevices
|
|
38
|
-
.map(
|
|
37
|
+
.map(device => device.displayName)
|
|
39
38
|
.join(`\n- `)}`);
|
|
40
39
|
}
|
|
41
40
|
catch (error) {
|
|
@@ -44,8 +43,8 @@ function createStartIosSimulatorBuildFunction() {
|
|
|
44
43
|
finally {
|
|
45
44
|
logger.info('');
|
|
46
45
|
}
|
|
47
|
-
const deviceIdentifierInput =
|
|
48
|
-
const originalDeviceIdentifier = deviceIdentifierInput
|
|
46
|
+
const deviceIdentifierInput = inputs.device_identifier.value?.toString();
|
|
47
|
+
const originalDeviceIdentifier = deviceIdentifierInput ?? (await findMostGenericIphoneUuidAsync({ env }));
|
|
49
48
|
if (!originalDeviceIdentifier) {
|
|
50
49
|
throw new Error('Could not find an iPhone among available simulator devices.');
|
|
51
50
|
}
|
|
@@ -56,9 +55,9 @@ function createStartIosSimulatorBuildFunction() {
|
|
|
56
55
|
await IosSimulatorUtils_1.IosSimulatorUtils.waitForReadyAsync({ udid, env });
|
|
57
56
|
logger.info('');
|
|
58
57
|
const device = await IosSimulatorUtils_1.IosSimulatorUtils.getDeviceAsync({ udid, env });
|
|
59
|
-
const formattedDevice =
|
|
58
|
+
const formattedDevice = device?.displayName ?? originalDeviceIdentifier;
|
|
60
59
|
logger.info(`${formattedDevice} is ready.`);
|
|
61
|
-
const count = Number(
|
|
60
|
+
const count = Number(inputs.count.value ?? 1);
|
|
62
61
|
if (count > 1) {
|
|
63
62
|
logger.info(`Requested ${count} Simulators, shutting down ${formattedDevice} for cloning.`);
|
|
64
63
|
await (0, turtle_spawn_1.default)('xcrun', ['simctl', 'shutdown', originalDeviceIdentifier], {
|
|
@@ -89,14 +88,12 @@ function createStartIosSimulatorBuildFunction() {
|
|
|
89
88
|
});
|
|
90
89
|
}
|
|
91
90
|
async function findMostGenericIphoneUuidAsync({ env, }) {
|
|
92
|
-
var _a;
|
|
93
91
|
const availableSimulatorDevices = await IosSimulatorUtils_1.IosSimulatorUtils.getAvailableDevicesAsync({
|
|
94
92
|
env,
|
|
95
93
|
filter: 'available',
|
|
96
94
|
});
|
|
97
|
-
const availableIphones = availableSimulatorDevices.filter(
|
|
95
|
+
const availableIphones = availableSimulatorDevices.filter(device => device.name.startsWith('iPhone'));
|
|
98
96
|
// It's funny, but it works.
|
|
99
|
-
const iphoneWithShortestName = (0, lodash_1.minBy)(availableIphones,
|
|
100
|
-
return
|
|
97
|
+
const iphoneWithShortestName = (0, lodash_1.minBy)(availableIphones, device => device.name.length);
|
|
98
|
+
return iphoneWithShortestName?.udid ?? null;
|
|
101
99
|
}
|
|
102
|
-
//# sourceMappingURL=startIosSimulator.js.map
|
|
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createUploadArtifactBuildFunction = createUploadArtifactBuildFunction;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
7
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
9
8
|
const steps_1 = require("@expo/steps");
|
|
9
|
+
const assert_1 = __importDefault(require("assert"));
|
|
10
10
|
const artifacts_1 = require("../../utils/artifacts");
|
|
11
11
|
const artifactTypeInputToManagedArtifactType = {
|
|
12
12
|
'application-archive': eas_build_job_1.ManagedArtifactType.APPLICATION_ARCHIVE,
|
|
@@ -70,14 +70,13 @@ function createUploadArtifactBuildFunction(ctx) {
|
|
|
70
70
|
}),
|
|
71
71
|
],
|
|
72
72
|
fn: async ({ logger, global }, { inputs, outputs }) => {
|
|
73
|
-
var _a;
|
|
74
73
|
(0, assert_1.default)(inputs.path.value, 'Path input cannot be empty.');
|
|
75
74
|
const artifactSearchPaths = inputs.path.value
|
|
76
75
|
.toString()
|
|
77
76
|
.split('\n')
|
|
78
77
|
// It's easy to get an empty line with YAML
|
|
79
|
-
.filter(
|
|
80
|
-
const artifactsSearchResults = await Promise.allSettled(artifactSearchPaths.map(
|
|
78
|
+
.filter(entry => entry);
|
|
79
|
+
const artifactsSearchResults = await Promise.allSettled(artifactSearchPaths.map(patternOrPath => (0, artifacts_1.findArtifacts)({
|
|
81
80
|
rootDir: global.projectTargetDirectory,
|
|
82
81
|
patternOrPath,
|
|
83
82
|
// We're logging the error ourselves.
|
|
@@ -97,7 +96,7 @@ function createUploadArtifactBuildFunction(ctx) {
|
|
|
97
96
|
const artifact = {
|
|
98
97
|
type: parseArtifactTypeInput({
|
|
99
98
|
platform: ctx.job.platform,
|
|
100
|
-
inputValue: `${
|
|
99
|
+
inputValue: `${inputs.type.value ?? ''}`,
|
|
101
100
|
}),
|
|
102
101
|
paths: artifactPaths,
|
|
103
102
|
name: (inputs.name.value || inputs.key.value),
|
|
@@ -144,4 +143,3 @@ function parseArtifactTypeInput({ inputValue, platform, }) {
|
|
|
144
143
|
}
|
|
145
144
|
return inputValue;
|
|
146
145
|
}
|
|
147
|
-
//# sourceMappingURL=uploadArtifact.js.map
|