mirror of
https://github.com/expo/eas-cli.git
synced 2026-11-13 20:28:08 -10:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a44720daba | ||
|
|
91a4538931 |
No files matched your search
@@ -22,6 +22,7 @@ import { checkExpoSdkIsSupportedAsync } from '../project/expoSdk';
|
||||
import { validateMetroConfigForManagedWorkflowAsync } from '../project/metroConfig';
|
||||
import { createSubmissionContextAsync } from '../submit/context';
|
||||
import {
|
||||
exitWithNonZeroCodeIfSomeSubmissionsDidntFinish,
|
||||
submitAsync,
|
||||
waitToCompleteAsync as waitForSubmissionsToCompleteAsync,
|
||||
} from '../submit/submit';
|
||||
@@ -96,7 +97,7 @@ export async function runBuildAndSubmitAsync(projectDir: string, flags: BuildFla
|
||||
});
|
||||
|
||||
const startedBuilds: {
|
||||
build: BuildFragment;
|
||||
build: BuildFragment & { submission?: SubmissionFragment };
|
||||
buildProfile: ProfileData<'build'>;
|
||||
}[] = [];
|
||||
const buildCtxByPlatform: { [p in AppPlatform]?: BuildContext<Platform> } = {};
|
||||
@@ -149,6 +150,7 @@ export async function runBuildAndSubmitAsync(projectDir: string, flags: BuildFla
|
||||
submitProfile,
|
||||
nonInteractive: flags.nonInteractive,
|
||||
});
|
||||
startedBuild.build.submission = submission;
|
||||
submissions.push(submission);
|
||||
}
|
||||
|
||||
@@ -169,16 +171,31 @@ export async function runBuildAndSubmitAsync(projectDir: string, flags: BuildFla
|
||||
buildIds: startedBuilds.map(({ build }) => build.id),
|
||||
accountName,
|
||||
});
|
||||
printBuildResults(builds, flags.json);
|
||||
if (!flags.json) {
|
||||
printBuildResults(builds);
|
||||
}
|
||||
|
||||
const haveAllBuildsFailedOrCanceled = builds.every(
|
||||
build => build?.status && [BuildStatus.Errored, BuildStatus.Canceled].includes(build?.status)
|
||||
);
|
||||
if (haveAllBuildsFailedOrCanceled || !flags.autoSubmit) {
|
||||
if (flags.json) {
|
||||
printJsonOnlyOutput(builds);
|
||||
}
|
||||
exitWithNonZeroCodeIfSomeBuildsFailed(builds);
|
||||
} else {
|
||||
// the following function also exits with non zero code if any of the submissions failed
|
||||
await waitForSubmissionsToCompleteAsync(submissions);
|
||||
const completedSubmissions = await waitForSubmissionsToCompleteAsync(submissions);
|
||||
if (flags.json) {
|
||||
printJsonOnlyOutput(
|
||||
builds.map(build => ({
|
||||
...build,
|
||||
submission: completedSubmissions.find(
|
||||
submission => submission.platform === build?.platform
|
||||
),
|
||||
}))
|
||||
);
|
||||
}
|
||||
exitWithNonZeroCodeIfSomeSubmissionsDidntFinish(completedSubmissions);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ import {
|
||||
} from '../../graphql/generated';
|
||||
import Log, { learnMore } from '../../log';
|
||||
import { appPlatformDisplayNames, appPlatformEmojis } from '../../platform';
|
||||
import { printJsonOnlyOutput } from '../../utils/json';
|
||||
import { getBuildLogsUrl, getInternalDistributionInstallUrl } from './url';
|
||||
|
||||
export function printLogsUrls(builds: BuildFragment[]): void {
|
||||
@@ -32,18 +31,14 @@ export function printLogsUrls(builds: BuildFragment[]): void {
|
||||
}
|
||||
}
|
||||
|
||||
export function printBuildResults(builds: (BuildFragment | null)[], json: boolean): void {
|
||||
if (json) {
|
||||
printJsonOnlyOutput(builds);
|
||||
export function printBuildResults(builds: (BuildFragment | null)[]): void {
|
||||
Log.newLine();
|
||||
if (builds.length === 1) {
|
||||
const [build] = builds;
|
||||
assert(build, 'Build should be defined');
|
||||
printBuildResult(build);
|
||||
} else {
|
||||
Log.newLine();
|
||||
if (builds.length === 1) {
|
||||
const [build] = builds;
|
||||
assert(build, 'Build should be defined');
|
||||
printBuildResult(build);
|
||||
} else {
|
||||
(builds.filter(i => i) as BuildFragment[]).forEach(build => printBuildResult(build));
|
||||
}
|
||||
(builds.filter(i => i) as BuildFragment[]).forEach(build => printBuildResult(build));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,11 @@ import {
|
||||
import { getExpoConfig } from '../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../project/projectUtils';
|
||||
import { SubmitArchiveFlags, createSubmissionContextAsync } from '../submit/context';
|
||||
import { submitAsync, waitToCompleteAsync } from '../submit/submit';
|
||||
import {
|
||||
exitWithNonZeroCodeIfSomeSubmissionsDidntFinish,
|
||||
submitAsync,
|
||||
waitToCompleteAsync,
|
||||
} from '../submit/submit';
|
||||
import { printSubmissionDetailsUrls } from '../submit/utils/urls';
|
||||
import { getProfilesAsync } from '../utils/profiles';
|
||||
|
||||
@@ -130,7 +134,10 @@ export default class Submit extends EasCommand {
|
||||
printSubmissionDetailsUrls(submissions);
|
||||
|
||||
if (flags.wait) {
|
||||
await waitToCompleteAsync(submissions, { verbose: flags.verbose });
|
||||
const completedSubmissions = await waitToCompleteAsync(submissions, {
|
||||
verbose: flags.verbose,
|
||||
});
|
||||
exitWithNonZeroCodeIfSomeSubmissionsDidntFinish(completedSubmissions);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ export async function getApplicationIdFromBareAsync(
|
||||
if (applicationIdSuffix) {
|
||||
throw new Error('"applicationIdSuffix" in app/build.gradle is not supported.');
|
||||
}
|
||||
const applicationId = gradleUtils.resolveConfigValue(
|
||||
const applicationId = process.env.EAS_BUILD_APPLICATION_ID_OVERRIDES ?? gradleUtils.resolveConfigValue(
|
||||
buildGradle,
|
||||
'applicationId',
|
||||
gradleContext.flavor
|
||||
|
||||
@@ -40,7 +40,7 @@ export async function resolveGradleBuildContextAsync(
|
||||
} catch (err: any) {
|
||||
Log.warn(`Unable to read gradle project config: ${err.message}.`);
|
||||
Log.warn('Values from app/build.gradle might be resolved incorrectly.');
|
||||
return undefined;
|
||||
return { moduleName: gradleUtils.DEFAULT_MODULE_NAME, flavor: 'versioning' };
|
||||
}
|
||||
} else {
|
||||
return { moduleName: gradleUtils.DEFAULT_MODULE_NAME };
|
||||
|
||||
@@ -1,31 +1,8 @@
|
||||
import { AndroidConfig, IOSConfig } from '@expo/config-plugins';
|
||||
import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
|
||||
import { getVcsClient } from '../vcs';
|
||||
|
||||
export async function resolveWorkflowAsync(
|
||||
projectDir: string,
|
||||
platform: Platform
|
||||
_projectDir: string,
|
||||
_platform: Platform
|
||||
): Promise<Workflow> {
|
||||
let platformWorkflowMarker;
|
||||
try {
|
||||
platformWorkflowMarker =
|
||||
platform === Platform.ANDROID
|
||||
? await AndroidConfig.Paths.getAndroidManifestAsync(projectDir)
|
||||
: IOSConfig.Paths.getPBXProjectPath(projectDir);
|
||||
} catch {
|
||||
return Workflow.MANAGED;
|
||||
}
|
||||
|
||||
if (await fs.pathExists(platformWorkflowMarker)) {
|
||||
return (await getVcsClient().isFileIgnoredAsync(
|
||||
path.relative(projectDir, platformWorkflowMarker)
|
||||
))
|
||||
? Workflow.MANAGED
|
||||
: Workflow.GENERIC;
|
||||
} else {
|
||||
return Workflow.MANAGED;
|
||||
}
|
||||
return Workflow.GENERIC;
|
||||
}
|
||||
@@ -35,7 +35,7 @@ export async function submitAsync<T extends Platform>(
|
||||
export async function waitToCompleteAsync(
|
||||
submissions: SubmissionFragment[],
|
||||
{ verbose = false }: { verbose?: boolean } = {}
|
||||
): Promise<void> {
|
||||
): Promise<SubmissionFragment[]> {
|
||||
Log.newLine();
|
||||
const completedSubmissions = await waitForSubmissionsEndAsync(submissions);
|
||||
const moreSubmissions = completedSubmissions.length > 1;
|
||||
@@ -60,7 +60,7 @@ export async function waitToCompleteAsync(
|
||||
Log.newLine();
|
||||
}
|
||||
}
|
||||
exitWithNonZeroCodeIfSomeSubmissionsDidntFinish(completedSubmissions);
|
||||
return completedSubmissions;
|
||||
}
|
||||
|
||||
function printInstructionsForAndroidSubmission(submission: SubmissionFragment): void {
|
||||
@@ -87,7 +87,9 @@ function printInstructionsForIosSubmission(submission: SubmissionFragment): void
|
||||
}
|
||||
}
|
||||
|
||||
function exitWithNonZeroCodeIfSomeSubmissionsDidntFinish(submissions: SubmissionFragment[]): void {
|
||||
export function exitWithNonZeroCodeIfSomeSubmissionsDidntFinish(
|
||||
submissions: SubmissionFragment[]
|
||||
): void {
|
||||
const nonFinishedSubmissions = submissions.filter(
|
||||
({ status }) => status !== SubmissionStatus.Finished
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user