eas-cli 16.3.2 → 16.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -77
- package/build/build/android/prepareJob.js +4 -1
- package/build/build/context.d.ts +1 -0
- package/build/build/createContext.d.ts +2 -1
- package/build/build/createContext.js +2 -1
- package/build/build/ios/prepareJob.js +4 -1
- package/build/build/runBuildAndSubmit.d.ts +1 -0
- package/build/build/runBuildAndSubmit.js +1 -0
- package/build/commands/build/index.d.ts +1 -0
- package/build/commands/build/index.js +5 -0
- package/build/commands/update/index.js +11 -1
- package/build/graphql/generated.d.ts +115 -92
- package/build/graphql/generated.js +9 -4
- package/build/project/maybeUploadAssetMapAsync.d.ts +3 -0
- package/build/project/maybeUploadAssetMapAsync.js +40 -0
- package/build/project/metroConfig.js +4 -1
- package/build/project/publish.d.ts +1 -1
- package/build/worker/upload.js +17 -2
- package/oclif.manifest.json +7 -1
- package/package.json +3 -3
|
@@ -58,7 +58,10 @@ async function prepareJobAsync(ctx, jobData) {
|
|
|
58
58
|
bun: buildProfile.bun,
|
|
59
59
|
yarn: buildProfile.yarn,
|
|
60
60
|
ndk: buildProfile.ndk,
|
|
61
|
-
env:
|
|
61
|
+
env: {
|
|
62
|
+
...buildProfile.env,
|
|
63
|
+
...(ctx.isVerboseLoggingEnabled ? { EAS_VERBOSE: '1' } : {}),
|
|
64
|
+
},
|
|
62
65
|
},
|
|
63
66
|
cache: {
|
|
64
67
|
...cacheDefaults,
|
package/build/build/context.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGr
|
|
|
9
9
|
import { CustomBuildConfigMetadata } from '../project/customBuildConfig';
|
|
10
10
|
import { Actor } from '../user/User';
|
|
11
11
|
import { Client } from '../vcs/vcs';
|
|
12
|
-
export declare function createBuildContextAsync<T extends Platform>({ buildProfileName, buildProfile, easJsonCliConfig, clearCache, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, repack, env, }: {
|
|
12
|
+
export declare function createBuildContextAsync<T extends Platform>({ buildProfileName, buildProfile, easJsonCliConfig, clearCache, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, repack, isVerboseLoggingEnabled, env, }: {
|
|
13
13
|
buildProfileName: string;
|
|
14
14
|
buildProfile: BuildProfile<T>;
|
|
15
15
|
easJsonCliConfig: EasJson['cli'];
|
|
@@ -30,5 +30,6 @@ export declare function createBuildContextAsync<T extends Platform>({ buildProfi
|
|
|
30
30
|
buildLoggerLevel?: LoggerLevel;
|
|
31
31
|
freezeCredentials: boolean;
|
|
32
32
|
repack: boolean;
|
|
33
|
+
isVerboseLoggingEnabled: boolean;
|
|
33
34
|
env: Record<string, string>;
|
|
34
35
|
}): Promise<BuildContext<T>>;
|
|
@@ -16,7 +16,7 @@ const AnalyticsManager_1 = require("../analytics/AnalyticsManager");
|
|
|
16
16
|
const context_1 = require("../credentials/context");
|
|
17
17
|
const projectUtils_1 = require("../project/projectUtils");
|
|
18
18
|
const workflow_1 = require("../project/workflow");
|
|
19
|
-
async function createBuildContextAsync({ buildProfileName, buildProfile, easJsonCliConfig, clearCache = false, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, repack, env, }) {
|
|
19
|
+
async function createBuildContextAsync({ buildProfileName, buildProfile, easJsonCliConfig, clearCache = false, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, repack, isVerboseLoggingEnabled, env, }) {
|
|
20
20
|
const { exp, projectId } = await getDynamicPrivateProjectConfigAsync({
|
|
21
21
|
env,
|
|
22
22
|
});
|
|
@@ -91,6 +91,7 @@ async function createBuildContextAsync({ buildProfileName, buildProfile, easJson
|
|
|
91
91
|
requiredPackageManager,
|
|
92
92
|
loggerLevel: buildLoggerLevel,
|
|
93
93
|
repack,
|
|
94
|
+
isVerboseLoggingEnabled,
|
|
94
95
|
env,
|
|
95
96
|
};
|
|
96
97
|
if (platform === eas_build_job_1.Platform.ANDROID) {
|
|
@@ -51,7 +51,10 @@ async function prepareJobAsync(ctx, jobData) {
|
|
|
51
51
|
bundler: buildProfile.bundler,
|
|
52
52
|
cocoapods: buildProfile.cocoapods,
|
|
53
53
|
fastlane: buildProfile.fastlane,
|
|
54
|
-
env:
|
|
54
|
+
env: {
|
|
55
|
+
...buildProfile.env,
|
|
56
|
+
...(ctx.isVerboseLoggingEnabled ? { EAS_VERBOSE: '1' } : {}),
|
|
57
|
+
},
|
|
55
58
|
},
|
|
56
59
|
cache: {
|
|
57
60
|
...cacheDefaults,
|
|
@@ -25,6 +25,7 @@ export interface BuildFlags {
|
|
|
25
25
|
buildLoggerLevel?: LoggerLevel;
|
|
26
26
|
freezeCredentials: boolean;
|
|
27
27
|
repack: boolean;
|
|
28
|
+
isVerboseLoggingEnabled?: boolean;
|
|
28
29
|
}
|
|
29
30
|
export declare function runBuildAndSubmitAsync({ graphqlClient, analytics, vcsClient, projectDir, flags, actor, getDynamicPrivateProjectConfigAsync, downloadSimBuildAutoConfirm, envOverride, }: {
|
|
30
31
|
graphqlClient: ExpoGraphqlClient;
|
|
@@ -237,6 +237,7 @@ async function prepareAndStartBuildAsync({ projectDir, flags, moreBuilds, buildP
|
|
|
237
237
|
buildLoggerLevel: flags.buildLoggerLevel ?? (log_1.default.isDebug ? logger_1.LoggerLevel.DEBUG : undefined),
|
|
238
238
|
freezeCredentials: flags.freezeCredentials,
|
|
239
239
|
repack: flags.repack,
|
|
240
|
+
isVerboseLoggingEnabled: flags.isVerboseLoggingEnabled ?? false,
|
|
240
241
|
env,
|
|
241
242
|
});
|
|
242
243
|
if (moreBuilds) {
|
|
@@ -21,6 +21,7 @@ export default class Build extends EasCommand {
|
|
|
21
21
|
'build-logger-level': import("@oclif/core/lib/interfaces").OptionFlag<LoggerLevel | undefined>;
|
|
22
22
|
'freeze-credentials': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
23
23
|
repack: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
24
|
+
'verbose-logs': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
24
25
|
};
|
|
25
26
|
static contextDefinition: {
|
|
26
27
|
vcsClient: import("../../commandUtils/context/VcsClientContextField").default;
|
|
@@ -94,6 +94,10 @@ class Build extends EasCommand_1.default {
|
|
|
94
94
|
hidden: true,
|
|
95
95
|
description: 'Use the golden dev client build repack flow as it works for onboarding',
|
|
96
96
|
}),
|
|
97
|
+
'verbose-logs': core_1.Flags.boolean({
|
|
98
|
+
default: false,
|
|
99
|
+
description: 'Use verbose logs for the build process',
|
|
100
|
+
}),
|
|
97
101
|
...flags_1.EasNonInteractiveAndJsonFlags,
|
|
98
102
|
};
|
|
99
103
|
static contextDefinition = {
|
|
@@ -182,6 +186,7 @@ class Build extends EasCommand_1.default {
|
|
|
182
186
|
message,
|
|
183
187
|
buildLoggerLevel: flags['build-logger-level'],
|
|
184
188
|
freezeCredentials: flags['freeze-credentials'],
|
|
189
|
+
isVerboseLoggingEnabled: flags['verbose-logs'],
|
|
185
190
|
repack: flags.repack,
|
|
186
191
|
};
|
|
187
192
|
}
|
|
@@ -20,6 +20,7 @@ const AppQuery_1 = require("../../graphql/queries/AppQuery");
|
|
|
20
20
|
const log_1 = tslib_1.__importStar(require("../../log"));
|
|
21
21
|
const ora_1 = require("../../ora");
|
|
22
22
|
const platform_1 = require("../../platform");
|
|
23
|
+
const maybeUploadAssetMapAsync_1 = require("../../project/maybeUploadAssetMapAsync");
|
|
23
24
|
const maybeUploadFingerprintAsync_1 = require("../../project/maybeUploadFingerprintAsync");
|
|
24
25
|
const projectUtils_1 = require("../../project/projectUtils");
|
|
25
26
|
const publish_1 = require("../../project/publish");
|
|
@@ -165,8 +166,13 @@ class UpdatePublish extends EasCommand_1.default {
|
|
|
165
166
|
let uploadedAssetCount = 0;
|
|
166
167
|
let assetLimitPerUpdateGroup = 0;
|
|
167
168
|
let realizedPlatforms = [];
|
|
169
|
+
let assetMapSource = null;
|
|
168
170
|
try {
|
|
169
|
-
const collectedAssets = await
|
|
171
|
+
const [collectedAssets, maybeAssetMapSource] = await Promise.all([
|
|
172
|
+
(0, publish_1.collectAssetsAsync)(distRoot),
|
|
173
|
+
(0, maybeUploadAssetMapAsync_1.maybeUploadAssetMapAsync)(distRoot, graphqlClient),
|
|
174
|
+
]);
|
|
175
|
+
assetMapSource = maybeAssetMapSource;
|
|
170
176
|
const assets = (0, publish_1.filterCollectedAssetsByRequestedPlatforms)(collectedAssets, requestedPlatform);
|
|
171
177
|
realizedPlatforms = Object.keys(assets);
|
|
172
178
|
// Timeout mechanism:
|
|
@@ -320,11 +326,15 @@ class UpdatePublish extends EasCommand_1.default {
|
|
|
320
326
|
},
|
|
321
327
|
};
|
|
322
328
|
}, {});
|
|
329
|
+
const assetMapGroup = assetMapSource
|
|
330
|
+
? Object.fromEntries(platforms.map(platform => [platform, assetMapSource]))
|
|
331
|
+
: null;
|
|
323
332
|
return {
|
|
324
333
|
branchId: branch.id,
|
|
325
334
|
updateInfoGroup: localUpdateInfoGroup,
|
|
326
335
|
rolloutInfoGroup: localRolloutInfoGroup,
|
|
327
336
|
fingerprintInfoGroup: transformedFingerprintInfoGroup,
|
|
337
|
+
assetMapGroup,
|
|
328
338
|
runtimeVersion,
|
|
329
339
|
message: updateMessage,
|
|
330
340
|
gitCommitHash,
|
|
@@ -2162,6 +2162,18 @@ export type AscApiKeyInput = {
|
|
|
2162
2162
|
keyIdentifier: Scalars['String']['input'];
|
|
2163
2163
|
keyP8: Scalars['String']['input'];
|
|
2164
2164
|
};
|
|
2165
|
+
export type AssetMapGroup = {
|
|
2166
|
+
android?: InputMaybe<AssetMapSourceInput>;
|
|
2167
|
+
ios?: InputMaybe<AssetMapSourceInput>;
|
|
2168
|
+
web?: InputMaybe<AssetMapSourceInput>;
|
|
2169
|
+
};
|
|
2170
|
+
export type AssetMapSourceInput = {
|
|
2171
|
+
bucketKey?: InputMaybe<Scalars['String']['input']>;
|
|
2172
|
+
type?: InputMaybe<AssetMapSourceType>;
|
|
2173
|
+
};
|
|
2174
|
+
export declare enum AssetMapSourceType {
|
|
2175
|
+
Gcs = "GCS"
|
|
2176
|
+
}
|
|
2165
2177
|
export type AssetMetadataResult = {
|
|
2166
2178
|
__typename?: 'AssetMetadataResult';
|
|
2167
2179
|
status: AssetMetadataStatus;
|
|
@@ -2258,6 +2270,10 @@ export declare enum AuthProviderIdentifier {
|
|
|
2258
2270
|
OneLogin = "ONE_LOGIN",
|
|
2259
2271
|
StubIdp = "STUB_IDP"
|
|
2260
2272
|
}
|
|
2273
|
+
export type AverageMetrics = {
|
|
2274
|
+
__typename?: 'AverageMetrics';
|
|
2275
|
+
averageDownloadSize: Scalars['Int']['output'];
|
|
2276
|
+
};
|
|
2261
2277
|
export type BackgroundJobReceipt = {
|
|
2262
2278
|
__typename?: 'BackgroundJobReceipt';
|
|
2263
2279
|
account: Account;
|
|
@@ -4871,7 +4887,6 @@ export declare enum ProjectArchiveSourceType {
|
|
|
4871
4887
|
Gcs = "GCS",
|
|
4872
4888
|
Git = "GIT",
|
|
4873
4889
|
None = "NONE",
|
|
4874
|
-
S3 = "S3",
|
|
4875
4890
|
Url = "URL"
|
|
4876
4891
|
}
|
|
4877
4892
|
export type ProjectPublicData = {
|
|
@@ -4896,6 +4911,7 @@ export type PublicArtifacts = {
|
|
|
4896
4911
|
buildUrl?: Maybe<Scalars['String']['output']>;
|
|
4897
4912
|
};
|
|
4898
4913
|
export type PublishUpdateGroupInput = {
|
|
4914
|
+
assetMapGroup?: InputMaybe<AssetMapGroup>;
|
|
4899
4915
|
awaitingCodeSigningInfo?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4900
4916
|
branchId: Scalars['String']['input'];
|
|
4901
4917
|
environment?: InputMaybe<EnvironmentVariableEnvironment>;
|
|
@@ -5870,6 +5886,7 @@ export type Update = ActivityTimelineProjectActivity & {
|
|
|
5870
5886
|
activityTimestamp: Scalars['DateTime']['output'];
|
|
5871
5887
|
actor?: Maybe<Actor>;
|
|
5872
5888
|
app: App;
|
|
5889
|
+
assetMapUrl?: Maybe<Scalars['String']['output']>;
|
|
5873
5890
|
awaitingCodeSigningInfo: Scalars['Boolean']['output'];
|
|
5874
5891
|
branch: UpdateBranch;
|
|
5875
5892
|
branchId: Scalars['ID']['output'];
|
|
@@ -6070,6 +6087,7 @@ export type UpdateInfoGroup = {
|
|
|
6070
6087
|
};
|
|
6071
6088
|
export type UpdateInsights = {
|
|
6072
6089
|
__typename?: 'UpdateInsights';
|
|
6090
|
+
averageMetrics: AverageMetrics;
|
|
6073
6091
|
cumulativeMetrics: CumulativeMetrics;
|
|
6074
6092
|
id: Scalars['ID']['output'];
|
|
6075
6093
|
totalUniqueUsers: Scalars['Int']['output'];
|
|
@@ -6082,7 +6100,10 @@ export type UpdateInsightsTotalUniqueUsersArgs = {
|
|
|
6082
6100
|
};
|
|
6083
6101
|
export type UpdateMutation = {
|
|
6084
6102
|
__typename?: 'UpdateMutation';
|
|
6085
|
-
/**
|
|
6103
|
+
/**
|
|
6104
|
+
* Delete an EAS update group
|
|
6105
|
+
* @deprecated Use scheduleUpdateGroupDeletion instead
|
|
6106
|
+
*/
|
|
6086
6107
|
deleteUpdateGroup: DeleteUpdateGroupResult;
|
|
6087
6108
|
/** Delete an EAS update group in the background */
|
|
6088
6109
|
scheduleUpdateGroupDeletion: BackgroundJobReceipt;
|
|
@@ -6168,6 +6189,7 @@ export declare enum UploadSessionType {
|
|
|
6168
6189
|
/** @deprecated Use EAS_SUBMIT_GCS_APP_ARCHIVE instead. */
|
|
6169
6190
|
EasSubmitAppArchive = "EAS_SUBMIT_APP_ARCHIVE",
|
|
6170
6191
|
EasSubmitGcsAppArchive = "EAS_SUBMIT_GCS_APP_ARCHIVE",
|
|
6192
|
+
EasUpdateAssetsMetadata = "EAS_UPDATE_ASSETS_METADATA",
|
|
6171
6193
|
EasUpdateFingerprint = "EAS_UPDATE_FINGERPRINT"
|
|
6172
6194
|
}
|
|
6173
6195
|
export type UsageMetricTotal = {
|
|
@@ -7102,7 +7124,7 @@ export type WorkerDeploymentRequestsCacheStatusEdge = {
|
|
|
7102
7124
|
};
|
|
7103
7125
|
export type WorkerDeploymentRequestsContinentEdge = {
|
|
7104
7126
|
__typename?: 'WorkerDeploymentRequestsContinentEdge';
|
|
7105
|
-
continent
|
|
7127
|
+
continent?: Maybe<ContinentCode>;
|
|
7106
7128
|
node: WorkerDeploymentRequestsAggregationNode;
|
|
7107
7129
|
};
|
|
7108
7130
|
export type WorkerDeploymentRequestsCountryEdge = {
|
|
@@ -7259,6 +7281,7 @@ export declare enum WorkflowJobType {
|
|
|
7259
7281
|
GetBuild = "GET_BUILD",
|
|
7260
7282
|
MaestroTest = "MAESTRO_TEST",
|
|
7261
7283
|
RequireApproval = "REQUIRE_APPROVAL",
|
|
7284
|
+
Slack = "SLACK",
|
|
7262
7285
|
Submission = "SUBMISSION",
|
|
7263
7286
|
Update = "UPDATE"
|
|
7264
7287
|
}
|
|
@@ -11851,6 +11874,95 @@ export type CreateKeystoreGenerationUrlMutation = {
|
|
|
11851
11874
|
};
|
|
11852
11875
|
};
|
|
11853
11876
|
};
|
|
11877
|
+
export type CreateLocalBuildMutationVariables = Exact<{
|
|
11878
|
+
appId: Scalars['ID']['input'];
|
|
11879
|
+
jobInput: LocalBuildJobInput;
|
|
11880
|
+
artifactSource: LocalBuildArchiveSourceInput;
|
|
11881
|
+
metadata?: InputMaybe<BuildMetadataInput>;
|
|
11882
|
+
}>;
|
|
11883
|
+
export type CreateLocalBuildMutation = {
|
|
11884
|
+
__typename?: 'RootMutation';
|
|
11885
|
+
build: {
|
|
11886
|
+
__typename?: 'BuildMutation';
|
|
11887
|
+
createLocalBuild: {
|
|
11888
|
+
__typename?: 'CreateBuildResult';
|
|
11889
|
+
build: {
|
|
11890
|
+
__typename?: 'Build';
|
|
11891
|
+
id: string;
|
|
11892
|
+
status: BuildStatus;
|
|
11893
|
+
platform: AppPlatform;
|
|
11894
|
+
channel?: string | null;
|
|
11895
|
+
distribution?: DistributionType | null;
|
|
11896
|
+
iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null;
|
|
11897
|
+
buildProfile?: string | null;
|
|
11898
|
+
sdkVersion?: string | null;
|
|
11899
|
+
appVersion?: string | null;
|
|
11900
|
+
appBuildVersion?: string | null;
|
|
11901
|
+
runtimeVersion?: string | null;
|
|
11902
|
+
gitCommitHash?: string | null;
|
|
11903
|
+
gitCommitMessage?: string | null;
|
|
11904
|
+
initialQueuePosition?: number | null;
|
|
11905
|
+
queuePosition?: number | null;
|
|
11906
|
+
estimatedWaitTimeLeftSeconds?: number | null;
|
|
11907
|
+
priority: BuildPriority;
|
|
11908
|
+
createdAt: any;
|
|
11909
|
+
updatedAt: any;
|
|
11910
|
+
message?: string | null;
|
|
11911
|
+
completedAt?: any | null;
|
|
11912
|
+
expirationDate?: any | null;
|
|
11913
|
+
isForIosSimulator: boolean;
|
|
11914
|
+
error?: {
|
|
11915
|
+
__typename?: 'BuildError';
|
|
11916
|
+
errorCode: string;
|
|
11917
|
+
message: string;
|
|
11918
|
+
docsUrl?: string | null;
|
|
11919
|
+
} | null;
|
|
11920
|
+
artifacts?: {
|
|
11921
|
+
__typename?: 'BuildArtifacts';
|
|
11922
|
+
buildUrl?: string | null;
|
|
11923
|
+
xcodeBuildLogsUrl?: string | null;
|
|
11924
|
+
applicationArchiveUrl?: string | null;
|
|
11925
|
+
buildArtifactsUrl?: string | null;
|
|
11926
|
+
} | null;
|
|
11927
|
+
initiatingActor?: {
|
|
11928
|
+
__typename: 'Robot';
|
|
11929
|
+
id: string;
|
|
11930
|
+
displayName: string;
|
|
11931
|
+
} | {
|
|
11932
|
+
__typename: 'SSOUser';
|
|
11933
|
+
id: string;
|
|
11934
|
+
displayName: string;
|
|
11935
|
+
} | {
|
|
11936
|
+
__typename: 'User';
|
|
11937
|
+
id: string;
|
|
11938
|
+
displayName: string;
|
|
11939
|
+
} | null;
|
|
11940
|
+
project: {
|
|
11941
|
+
__typename: 'App';
|
|
11942
|
+
id: string;
|
|
11943
|
+
name: string;
|
|
11944
|
+
slug: string;
|
|
11945
|
+
ownerAccount: {
|
|
11946
|
+
__typename?: 'Account';
|
|
11947
|
+
id: string;
|
|
11948
|
+
name: string;
|
|
11949
|
+
};
|
|
11950
|
+
} | {
|
|
11951
|
+
__typename: 'Snack';
|
|
11952
|
+
id: string;
|
|
11953
|
+
name: string;
|
|
11954
|
+
slug: string;
|
|
11955
|
+
};
|
|
11956
|
+
metrics?: {
|
|
11957
|
+
__typename?: 'BuildMetrics';
|
|
11958
|
+
buildWaitTime?: number | null;
|
|
11959
|
+
buildQueueTime?: number | null;
|
|
11960
|
+
buildDuration?: number | null;
|
|
11961
|
+
} | null;
|
|
11962
|
+
};
|
|
11963
|
+
};
|
|
11964
|
+
};
|
|
11965
|
+
};
|
|
11854
11966
|
export type GetSignedUploadMutationVariables = Exact<{
|
|
11855
11967
|
contentTypes: Array<Scalars['String']['input']> | Scalars['String']['input'];
|
|
11856
11968
|
}>;
|
|
@@ -12013,95 +12125,6 @@ export type SetRolloutPercentageMutation = {
|
|
|
12013
12125
|
};
|
|
12014
12126
|
};
|
|
12015
12127
|
};
|
|
12016
|
-
export type CreateLocalBuildMutationVariables = Exact<{
|
|
12017
|
-
appId: Scalars['ID']['input'];
|
|
12018
|
-
jobInput: LocalBuildJobInput;
|
|
12019
|
-
artifactSource: LocalBuildArchiveSourceInput;
|
|
12020
|
-
metadata?: InputMaybe<BuildMetadataInput>;
|
|
12021
|
-
}>;
|
|
12022
|
-
export type CreateLocalBuildMutation = {
|
|
12023
|
-
__typename?: 'RootMutation';
|
|
12024
|
-
build: {
|
|
12025
|
-
__typename?: 'BuildMutation';
|
|
12026
|
-
createLocalBuild: {
|
|
12027
|
-
__typename?: 'CreateBuildResult';
|
|
12028
|
-
build: {
|
|
12029
|
-
__typename?: 'Build';
|
|
12030
|
-
id: string;
|
|
12031
|
-
status: BuildStatus;
|
|
12032
|
-
platform: AppPlatform;
|
|
12033
|
-
channel?: string | null;
|
|
12034
|
-
distribution?: DistributionType | null;
|
|
12035
|
-
iosEnterpriseProvisioning?: BuildIosEnterpriseProvisioning | null;
|
|
12036
|
-
buildProfile?: string | null;
|
|
12037
|
-
sdkVersion?: string | null;
|
|
12038
|
-
appVersion?: string | null;
|
|
12039
|
-
appBuildVersion?: string | null;
|
|
12040
|
-
runtimeVersion?: string | null;
|
|
12041
|
-
gitCommitHash?: string | null;
|
|
12042
|
-
gitCommitMessage?: string | null;
|
|
12043
|
-
initialQueuePosition?: number | null;
|
|
12044
|
-
queuePosition?: number | null;
|
|
12045
|
-
estimatedWaitTimeLeftSeconds?: number | null;
|
|
12046
|
-
priority: BuildPriority;
|
|
12047
|
-
createdAt: any;
|
|
12048
|
-
updatedAt: any;
|
|
12049
|
-
message?: string | null;
|
|
12050
|
-
completedAt?: any | null;
|
|
12051
|
-
expirationDate?: any | null;
|
|
12052
|
-
isForIosSimulator: boolean;
|
|
12053
|
-
error?: {
|
|
12054
|
-
__typename?: 'BuildError';
|
|
12055
|
-
errorCode: string;
|
|
12056
|
-
message: string;
|
|
12057
|
-
docsUrl?: string | null;
|
|
12058
|
-
} | null;
|
|
12059
|
-
artifacts?: {
|
|
12060
|
-
__typename?: 'BuildArtifacts';
|
|
12061
|
-
buildUrl?: string | null;
|
|
12062
|
-
xcodeBuildLogsUrl?: string | null;
|
|
12063
|
-
applicationArchiveUrl?: string | null;
|
|
12064
|
-
buildArtifactsUrl?: string | null;
|
|
12065
|
-
} | null;
|
|
12066
|
-
initiatingActor?: {
|
|
12067
|
-
__typename: 'Robot';
|
|
12068
|
-
id: string;
|
|
12069
|
-
displayName: string;
|
|
12070
|
-
} | {
|
|
12071
|
-
__typename: 'SSOUser';
|
|
12072
|
-
id: string;
|
|
12073
|
-
displayName: string;
|
|
12074
|
-
} | {
|
|
12075
|
-
__typename: 'User';
|
|
12076
|
-
id: string;
|
|
12077
|
-
displayName: string;
|
|
12078
|
-
} | null;
|
|
12079
|
-
project: {
|
|
12080
|
-
__typename: 'App';
|
|
12081
|
-
id: string;
|
|
12082
|
-
name: string;
|
|
12083
|
-
slug: string;
|
|
12084
|
-
ownerAccount: {
|
|
12085
|
-
__typename?: 'Account';
|
|
12086
|
-
id: string;
|
|
12087
|
-
name: string;
|
|
12088
|
-
};
|
|
12089
|
-
} | {
|
|
12090
|
-
__typename: 'Snack';
|
|
12091
|
-
id: string;
|
|
12092
|
-
name: string;
|
|
12093
|
-
slug: string;
|
|
12094
|
-
};
|
|
12095
|
-
metrics?: {
|
|
12096
|
-
__typename?: 'BuildMetrics';
|
|
12097
|
-
buildWaitTime?: number | null;
|
|
12098
|
-
buildQueueTime?: number | null;
|
|
12099
|
-
buildDuration?: number | null;
|
|
12100
|
-
} | null;
|
|
12101
|
-
};
|
|
12102
|
-
};
|
|
12103
|
-
};
|
|
12104
|
-
};
|
|
12105
12128
|
export type CreateAndroidSubmissionMutationVariables = Exact<{
|
|
12106
12129
|
appId: Scalars['ID']['input'];
|
|
12107
12130
|
config: AndroidSubmissionConfigInput;
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* For more info and docs, visit https://graphql-code-generator.com/
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = void 0;
|
|
9
|
+
exports.Experiment = exports.EnvironmentVariableVisibility = exports.EnvironmentVariableScope = exports.EnvironmentVariableEnvironment = exports.EnvironmentSecretType = exports.EntityTypeName = exports.EasTotalPlanEnablementUnit = exports.EasServiceMetric = exports.EasService = exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.CustomDomainStatus = exports.CustomDomainDnsRecordType = exports.CrashSampleFor = exports.ContinentCode = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildRetryDisabledReason = exports.BuildResourceClass = exports.BuildPriority = exports.BuildPhase = exports.BuildMode = exports.BuildLimitThresholdExceededMetadataType = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProviderIdentifier = exports.AuthProtocolType = exports.AuditLogsExportFormat = exports.AssetMetadataStatus = exports.AssetMapSourceType = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppUploadSessionType = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountUploadSessionType = exports.AccountAppsSortByField = void 0;
|
|
10
|
+
exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResponseType = exports.ResponseStatusType = exports.ResponseCacheStatus = exports.ResourceClassExperiment = exports.RequestsOrderByField = exports.RequestsOrderByDirection = exports.RequestMethod = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OnboardingEnvironment = exports.OnboardingDeviceType = exports.OfferType = exports.NotificationType = exports.NotificationEvent = exports.MailchimpTag = exports.MailchimpAudience = exports.LocalBuildArchiveSourceType = exports.JobRunStatus = exports.JobRunPriority = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.InsightsFilterType = exports.GitHubJobRunTriggerType = exports.GitHubJobRunTriggerRunStatus = exports.GitHubJobRunJobType = exports.GitHubBuildTriggerType = exports.GitHubBuildTriggerRunStatus = exports.GitHubBuildTriggerExecutionBehavior = exports.GitHubAppInstallationStatus = exports.GitHubAppInstallationAccountType = exports.GitHubAppEnvironment = exports.FingerprintSourceType = exports.Feature = void 0;
|
|
11
|
+
exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = void 0;
|
|
12
12
|
var AccountAppsSortByField;
|
|
13
13
|
(function (AccountAppsSortByField) {
|
|
14
14
|
AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
|
|
@@ -115,6 +115,10 @@ var AppsFilter;
|
|
|
115
115
|
/** New Projects */
|
|
116
116
|
AppsFilter["New"] = "NEW";
|
|
117
117
|
})(AppsFilter || (exports.AppsFilter = AppsFilter = {}));
|
|
118
|
+
var AssetMapSourceType;
|
|
119
|
+
(function (AssetMapSourceType) {
|
|
120
|
+
AssetMapSourceType["Gcs"] = "GCS";
|
|
121
|
+
})(AssetMapSourceType || (exports.AssetMapSourceType = AssetMapSourceType = {}));
|
|
118
122
|
var AssetMetadataStatus;
|
|
119
123
|
(function (AssetMetadataStatus) {
|
|
120
124
|
AssetMetadataStatus["DoesNotExist"] = "DOES_NOT_EXIST";
|
|
@@ -583,7 +587,6 @@ var ProjectArchiveSourceType;
|
|
|
583
587
|
ProjectArchiveSourceType["Gcs"] = "GCS";
|
|
584
588
|
ProjectArchiveSourceType["Git"] = "GIT";
|
|
585
589
|
ProjectArchiveSourceType["None"] = "NONE";
|
|
586
|
-
ProjectArchiveSourceType["S3"] = "S3";
|
|
587
590
|
ProjectArchiveSourceType["Url"] = "URL";
|
|
588
591
|
})(ProjectArchiveSourceType || (exports.ProjectArchiveSourceType = ProjectArchiveSourceType = {}));
|
|
589
592
|
var RequestMethod;
|
|
@@ -759,6 +762,7 @@ var UploadSessionType;
|
|
|
759
762
|
/** @deprecated Use EAS_SUBMIT_GCS_APP_ARCHIVE instead. */
|
|
760
763
|
UploadSessionType["EasSubmitAppArchive"] = "EAS_SUBMIT_APP_ARCHIVE";
|
|
761
764
|
UploadSessionType["EasSubmitGcsAppArchive"] = "EAS_SUBMIT_GCS_APP_ARCHIVE";
|
|
765
|
+
UploadSessionType["EasUpdateAssetsMetadata"] = "EAS_UPDATE_ASSETS_METADATA";
|
|
762
766
|
UploadSessionType["EasUpdateFingerprint"] = "EAS_UPDATE_FINGERPRINT";
|
|
763
767
|
})(UploadSessionType || (exports.UploadSessionType = UploadSessionType = {}));
|
|
764
768
|
var UsageMetricType;
|
|
@@ -877,6 +881,7 @@ var WorkflowJobType;
|
|
|
877
881
|
WorkflowJobType["GetBuild"] = "GET_BUILD";
|
|
878
882
|
WorkflowJobType["MaestroTest"] = "MAESTRO_TEST";
|
|
879
883
|
WorkflowJobType["RequireApproval"] = "REQUIRE_APPROVAL";
|
|
884
|
+
WorkflowJobType["Slack"] = "SLACK";
|
|
880
885
|
WorkflowJobType["Submission"] = "SUBMISSION";
|
|
881
886
|
WorkflowJobType["Update"] = "UPDATE";
|
|
882
887
|
})(WorkflowJobType || (exports.WorkflowJobType = WorkflowJobType = {}));
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
|
+
import { AssetMapSourceInput } from '../graphql/generated';
|
|
3
|
+
export declare function maybeUploadAssetMapAsync(distRoot: string, graphqlClient: ExpoGraphqlClient): Promise<AssetMapSourceInput | null>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.maybeUploadAssetMapAsync = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
7
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
8
|
+
const generated_1 = require("../graphql/generated");
|
|
9
|
+
const log_1 = tslib_1.__importDefault(require("../log"));
|
|
10
|
+
const uploads_1 = require("../uploads");
|
|
11
|
+
const files_1 = require("../utils/files");
|
|
12
|
+
const progress_1 = require("../utils/progress");
|
|
13
|
+
async function maybeUploadAssetMapAsync(distRoot, graphqlClient) {
|
|
14
|
+
const assetMapPath = path_1.default.join(distRoot, 'assetmap.json');
|
|
15
|
+
if (!(await fs_extra_1.default.pathExists(assetMapPath))) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
let gcsBucketKey = undefined;
|
|
19
|
+
const fileStat = await fs_extra_1.default.promises.stat(assetMapPath);
|
|
20
|
+
try {
|
|
21
|
+
gcsBucketKey = await (0, uploads_1.uploadFileAtPathToGCSAsync)(graphqlClient, generated_1.UploadSessionType.EasUpdateAssetsMetadata, assetMapPath, (0, progress_1.createProgressTracker)({
|
|
22
|
+
total: fileStat.size,
|
|
23
|
+
message: ratio => `Uploading assetmap.json (${(0, files_1.formatBytes)(fileStat.size * ratio)} / ${(0, files_1.formatBytes)(fileStat.size)})`,
|
|
24
|
+
completedMessage: (duration) => `Uploaded assetmap.json ${chalk_1.default.dim(duration)}`,
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
let errMessage = 'Failed to upload assetmap to EAS';
|
|
29
|
+
if (err.message) {
|
|
30
|
+
errMessage += `\n\nReason: ${err.message}`;
|
|
31
|
+
}
|
|
32
|
+
log_1.default.warn(errMessage);
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
type: generated_1.AssetMapSourceType.Gcs,
|
|
37
|
+
bucketKey: gcsBucketKey,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.maybeUploadAssetMapAsync = maybeUploadAssetMapAsync;
|
|
@@ -12,8 +12,11 @@ async function validateMetroConfigForManagedWorkflowAsync(ctx) {
|
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
14
|
const metroConfig = await loadConfigAsync(ctx.projectDir);
|
|
15
|
+
// SDK <50 | plugins whose presence can be used to determine if the config is extending Expo's Metro config
|
|
15
16
|
const hasHashAssetFilesPlugin = metroConfig.transformer?.assetPlugins?.find((plugin) => plugin.match(/expo-asset[/|\\]tools[/|\\]hashAssetFiles/));
|
|
16
|
-
|
|
17
|
+
// SDK >=51 | this is a custom property that we inject to ensure cache invalidation between projects.
|
|
18
|
+
const isExtendingExpoMetroConfig = metroConfig.transformer.hasOwnProperty('_expoRelativeProjectRoot');
|
|
19
|
+
if (!isExtendingExpoMetroConfig && !hasHashAssetFilesPlugin) {
|
|
17
20
|
log_1.default.warn(`It looks like that you are using a custom ${chalk_1.default.bold('metro.config.js')} that does not extend ${chalk_1.default.bold('@expo/metro-config')}.`);
|
|
18
21
|
log_1.default.warn('This can result in unexpected and hard to debug issues, like missing assets in the production bundle.');
|
|
19
22
|
if (!ctx.nonInteractive) {
|
package/build/worker/upload.js
CHANGED
|
@@ -102,8 +102,23 @@ async function uploadAsync(params) {
|
|
|
102
102
|
return retry(error);
|
|
103
103
|
}
|
|
104
104
|
const getErrorMessageAsync = async () => {
|
|
105
|
-
const
|
|
106
|
-
|
|
105
|
+
const rayId = response.headers.get('cf-ray');
|
|
106
|
+
const contentType = response.headers.get('Content-Type');
|
|
107
|
+
if (contentType?.startsWith('text/html')) {
|
|
108
|
+
// NOTE(@kitten): We've received a CDN error most likely. There's not much we can do
|
|
109
|
+
// except for quoting the Request ID, so a user can send it to us. We can check
|
|
110
|
+
// why a request was blocked by looking up a WAF event via the "Ray ID" here:
|
|
111
|
+
// https://dash.cloudflare.com/e6f39f67f543faa6038768e8f37e4234/expo.app/security/events
|
|
112
|
+
let message = `CDN firewall has aborted the upload with ${response.statusText}.`;
|
|
113
|
+
if (rayId) {
|
|
114
|
+
message += `\nReport this error quoting Request ID ${rayId}`;
|
|
115
|
+
}
|
|
116
|
+
return `Upload of "${filePath}" failed: ${message}`;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
const json = await response.json().catch(() => null);
|
|
120
|
+
return json?.error ?? `Upload of "${filePath}" failed: ${response.statusText}`;
|
|
121
|
+
}
|
|
107
122
|
};
|
|
108
123
|
if (response.status === 408 ||
|
|
109
124
|
response.status === 409 ||
|
package/oclif.manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "16.
|
|
2
|
+
"version": "16.4.0",
|
|
3
3
|
"commands": {
|
|
4
4
|
"analytics": {
|
|
5
5
|
"id": "analytics",
|
|
@@ -913,6 +913,12 @@
|
|
|
913
913
|
"hidden": true,
|
|
914
914
|
"allowNo": false
|
|
915
915
|
},
|
|
916
|
+
"verbose-logs": {
|
|
917
|
+
"name": "verbose-logs",
|
|
918
|
+
"type": "boolean",
|
|
919
|
+
"description": "Use verbose logs for the build process",
|
|
920
|
+
"allowNo": false
|
|
921
|
+
},
|
|
916
922
|
"json": {
|
|
917
923
|
"name": "json",
|
|
918
924
|
"type": "boolean",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eas-cli",
|
|
3
3
|
"description": "EAS command line tool",
|
|
4
|
-
"version": "16.
|
|
4
|
+
"version": "16.4.0",
|
|
5
5
|
"author": "Expo <support@expo.dev>",
|
|
6
6
|
"bin": {
|
|
7
7
|
"eas": "./bin/run"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"@expo/config": "10.0.6",
|
|
14
14
|
"@expo/config-plugins": "9.0.12",
|
|
15
15
|
"@expo/eas-build-job": "1.0.173",
|
|
16
|
-
"@expo/eas-json": "16.
|
|
16
|
+
"@expo/eas-json": "16.4.0",
|
|
17
17
|
"@expo/env": "^1.0.0",
|
|
18
18
|
"@expo/json-file": "8.3.3",
|
|
19
19
|
"@expo/logger": "1.0.117",
|
|
@@ -239,5 +239,5 @@
|
|
|
239
239
|
"node": "20.11.0",
|
|
240
240
|
"yarn": "1.22.21"
|
|
241
241
|
},
|
|
242
|
-
"gitHead": "
|
|
242
|
+
"gitHead": "da4c41b9b715ff89d241deea1e24b3e179798620"
|
|
243
243
|
}
|