mirror of
https://github.com/expo/eas-cli.git
synced 2026-11-14 10:08:06 -10:00
Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7b7eacd4e | ||
|
|
ec43906005 | ||
|
|
b71f324c83 |
No files matched your search
@@ -8,6 +8,8 @@ This is the log of notable changes to EAS CLI and related packages.
|
|||||||
|
|
||||||
### 🎉 New features
|
### 🎉 New features
|
||||||
|
|
||||||
|
- Added support to read platform version from `app.json`. ([#2778](https://github.com/expo/eas-cli/pull/2778) by [@kudo](https://github.com/kudo))
|
||||||
|
|
||||||
### 🐛 Bug fixes
|
### 🐛 Bug fixes
|
||||||
|
|
||||||
- Show `eas deploy` upload error messages. ([#2771](https://github.com/expo/eas-cli/pull/2771) by [@kadikraman](https://github.com/kadikraman))
|
- Show `eas deploy` upload error messages. ([#2771](https://github.com/expo/eas-cli/pull/2771) by [@kadikraman](https://github.com/kadikraman))
|
||||||
|
|||||||
@@ -20,7 +20,11 @@ import { getNextVersionCode } from '../../project/android/versions';
|
|||||||
import { resolveWorkflowAsync } from '../../project/workflow';
|
import { resolveWorkflowAsync } from '../../project/workflow';
|
||||||
import { Client } from '../../vcs/vcs';
|
import { Client } from '../../vcs/vcs';
|
||||||
import { updateAppJsonConfigAsync } from '../utils/appJson';
|
import { updateAppJsonConfigAsync } from '../utils/appJson';
|
||||||
import { bumpAppVersionAsync, ensureStaticConfigExists } from '../utils/version';
|
import {
|
||||||
|
bumpAppVersionAsync,
|
||||||
|
ensureStaticConfigExists,
|
||||||
|
getVersionConfigTarget,
|
||||||
|
} from '../utils/version';
|
||||||
|
|
||||||
export enum BumpStrategy {
|
export enum BumpStrategy {
|
||||||
APP_VERSION,
|
APP_VERSION,
|
||||||
@@ -53,9 +57,11 @@ export async function bumpVersionAsync({
|
|||||||
|
|
||||||
await bumpVersionInAppJsonAsync({ bumpStrategy, projectDir, exp });
|
await bumpVersionInAppJsonAsync({ bumpStrategy, projectDir, exp });
|
||||||
Log.log('Updated versions in app.json');
|
Log.log('Updated versions in app.json');
|
||||||
|
const { versionGetter } = getVersionConfigTarget({ exp, platform: Platform.ANDROID });
|
||||||
|
const version = versionGetter(exp);
|
||||||
await updateNativeVersionsAsync({
|
await updateNativeVersionsAsync({
|
||||||
projectDir,
|
projectDir,
|
||||||
version: exp.version,
|
version,
|
||||||
versionCode: exp.android?.versionCode,
|
versionCode: exp.android?.versionCode,
|
||||||
});
|
});
|
||||||
Log.log('Synchronized versions with build gradle');
|
Log.log('Synchronized versions with build gradle');
|
||||||
@@ -79,7 +85,7 @@ export async function bumpVersionInAppJsonAsync({
|
|||||||
|
|
||||||
if (bumpStrategy === BumpStrategy.APP_VERSION) {
|
if (bumpStrategy === BumpStrategy.APP_VERSION) {
|
||||||
const appVersion = AndroidConfig.Version.getVersionName(exp) ?? '1.0.0';
|
const appVersion = AndroidConfig.Version.getVersionName(exp) ?? '1.0.0';
|
||||||
await bumpAppVersionAsync({ appVersion, projectDir, exp });
|
await bumpAppVersionAsync({ appVersion, projectDir, exp, platform: Platform.ANDROID });
|
||||||
} else {
|
} else {
|
||||||
const versionCode = AndroidConfig.Version.getVersionCode(exp);
|
const versionCode = AndroidConfig.Version.getVersionCode(exp);
|
||||||
const bumpedVersionCode = getNextVersionCode(versionCode);
|
const bumpedVersionCode = getNextVersionCode(versionCode);
|
||||||
@@ -118,9 +124,11 @@ export async function maybeResolveVersionsAsync(
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
const { versionGetter } = getVersionConfigTarget({ exp, platform: Platform.ANDROID });
|
||||||
|
const appVersion = versionGetter(exp);
|
||||||
return {
|
return {
|
||||||
appBuildVersion: String(AndroidConfig.Version.getVersionCode(exp)),
|
appBuildVersion: String(AndroidConfig.Version.getVersionCode(exp)),
|
||||||
appVersion: exp.version,
|
appVersion,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -202,6 +210,7 @@ export async function resolveRemoteVersionCodeAsync(
|
|||||||
applicationId
|
applicationId
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const { versionGetter } = getVersionConfigTarget({ exp, platform: Platform.ANDROID });
|
||||||
const localVersions = await maybeResolveVersionsAsync(projectDir, exp, buildProfile, vcsClient);
|
const localVersions = await maybeResolveVersionsAsync(projectDir, exp, buildProfile, vcsClient);
|
||||||
let currentBuildVersion: string;
|
let currentBuildVersion: string;
|
||||||
if (remoteVersions?.buildVersion) {
|
if (remoteVersions?.buildVersion) {
|
||||||
@@ -230,7 +239,7 @@ export async function resolveRemoteVersionCodeAsync(
|
|||||||
appId: projectId,
|
appId: projectId,
|
||||||
platform: AppPlatform.Android,
|
platform: AppPlatform.Android,
|
||||||
applicationIdentifier: applicationId,
|
applicationIdentifier: applicationId,
|
||||||
storeVersion: localVersions.appVersion ?? exp.version ?? '1.0.0',
|
storeVersion: localVersions.appVersion ?? versionGetter(exp) ?? '1.0.0',
|
||||||
buildVersion: currentBuildVersion,
|
buildVersion: currentBuildVersion,
|
||||||
runtimeVersion:
|
runtimeVersion:
|
||||||
(await Updates.getRuntimeVersionNullableAsync(projectDir, exp, Platform.ANDROID)) ??
|
(await Updates.getRuntimeVersionNullableAsync(projectDir, exp, Platform.ANDROID)) ??
|
||||||
@@ -254,7 +263,7 @@ export async function resolveRemoteVersionCodeAsync(
|
|||||||
appId: projectId,
|
appId: projectId,
|
||||||
platform: AppPlatform.Android,
|
platform: AppPlatform.Android,
|
||||||
applicationIdentifier: applicationId,
|
applicationIdentifier: applicationId,
|
||||||
storeVersion: localVersions.appVersion ?? exp.version ?? '1.0.0',
|
storeVersion: localVersions.appVersion ?? versionGetter(exp) ?? '1.0.0',
|
||||||
buildVersion: String(nextBuildVersion),
|
buildVersion: String(nextBuildVersion),
|
||||||
runtimeVersion:
|
runtimeVersion:
|
||||||
(await Updates.getRuntimeVersionNullableAsync(projectDir, exp, Platform.ANDROID)) ??
|
(await Updates.getRuntimeVersionNullableAsync(projectDir, exp, Platform.ANDROID)) ??
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ import uniqBy from '../../utils/expodash/uniqBy';
|
|||||||
import { readPlistAsync, writePlistAsync } from '../../utils/plist';
|
import { readPlistAsync, writePlistAsync } from '../../utils/plist';
|
||||||
import { Client } from '../../vcs/vcs';
|
import { Client } from '../../vcs/vcs';
|
||||||
import { updateAppJsonConfigAsync } from '../utils/appJson';
|
import { updateAppJsonConfigAsync } from '../utils/appJson';
|
||||||
import { bumpAppVersionAsync, ensureStaticConfigExists } from '../utils/version';
|
import {
|
||||||
|
bumpAppVersionAsync,
|
||||||
|
ensureStaticConfigExists,
|
||||||
|
getVersionConfigTarget,
|
||||||
|
} from '../utils/version';
|
||||||
|
|
||||||
const SHORT_VERSION_REGEX = /^\d+(\.\d+){0,2}$/;
|
const SHORT_VERSION_REGEX = /^\d+(\.\d+){0,2}$/;
|
||||||
|
|
||||||
@@ -48,9 +52,11 @@ export async function bumpVersionAsync({
|
|||||||
ensureStaticConfigExists(projectDir);
|
ensureStaticConfigExists(projectDir);
|
||||||
await bumpVersionInAppJsonAsync({ bumpStrategy, projectDir, exp });
|
await bumpVersionInAppJsonAsync({ bumpStrategy, projectDir, exp });
|
||||||
Log.log('Updated versions in app.json');
|
Log.log('Updated versions in app.json');
|
||||||
|
const { versionGetter } = getVersionConfigTarget({ exp, platform: Platform.IOS });
|
||||||
|
const version = versionGetter(exp);
|
||||||
await updateNativeVersionsAsync({
|
await updateNativeVersionsAsync({
|
||||||
projectDir,
|
projectDir,
|
||||||
version: exp.version,
|
version,
|
||||||
buildNumber: exp.ios?.buildNumber,
|
buildNumber: exp.ios?.buildNumber,
|
||||||
targets,
|
targets,
|
||||||
});
|
});
|
||||||
@@ -73,7 +79,7 @@ export async function bumpVersionInAppJsonAsync({
|
|||||||
Log.addNewLineIfNone();
|
Log.addNewLineIfNone();
|
||||||
if (bumpStrategy === BumpStrategy.APP_VERSION) {
|
if (bumpStrategy === BumpStrategy.APP_VERSION) {
|
||||||
const appVersion = IOSConfig.Version.getVersion(exp);
|
const appVersion = IOSConfig.Version.getVersion(exp);
|
||||||
await bumpAppVersionAsync({ appVersion, projectDir, exp });
|
await bumpAppVersionAsync({ appVersion, projectDir, exp, platform: Platform.IOS });
|
||||||
} else {
|
} else {
|
||||||
const buildNumber = IOSConfig.Version.getBuildNumber(exp);
|
const buildNumber = IOSConfig.Version.getBuildNumber(exp);
|
||||||
if (isValidBuildNumber(buildNumber)) {
|
if (isValidBuildNumber(buildNumber)) {
|
||||||
@@ -141,8 +147,10 @@ export async function readShortVersionAsync(
|
|||||||
validateShortVersion({ shortVersion, workflow });
|
validateShortVersion({ shortVersion, workflow });
|
||||||
return shortVersion;
|
return shortVersion;
|
||||||
} else {
|
} else {
|
||||||
validateShortVersion({ shortVersion: exp.version, workflow });
|
const { versionGetter } = getVersionConfigTarget({ exp, platform: Platform.IOS });
|
||||||
return exp.version;
|
const shortVersion = versionGetter(exp);
|
||||||
|
validateShortVersion({ shortVersion, workflow });
|
||||||
|
return shortVersion;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,148 @@
|
|||||||
|
import { ExpoConfig } from '@expo/config';
|
||||||
|
import { Platform } from '@expo/eas-build-job';
|
||||||
|
|
||||||
|
import { updateAppJsonConfigAsync } from '../appJson';
|
||||||
|
import { bumpAppVersionAsync, getVersionConfigTarget } from '../version';
|
||||||
|
|
||||||
|
jest.mock('../appJson', () => ({
|
||||||
|
__esModule: true,
|
||||||
|
updateAppJsonConfigAsync: jest.fn().mockImplementation(
|
||||||
|
async (
|
||||||
|
{
|
||||||
|
exp,
|
||||||
|
}: {
|
||||||
|
projectDir: string;
|
||||||
|
exp: ExpoConfig;
|
||||||
|
},
|
||||||
|
modifyConfig: (config: any) => void
|
||||||
|
) => {
|
||||||
|
// a mocked implementation that only mutates the config object without writing to disk
|
||||||
|
modifyConfig(exp);
|
||||||
|
}
|
||||||
|
),
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe(bumpAppVersionAsync, () => {
|
||||||
|
const name = 'test';
|
||||||
|
const slug = 'test';
|
||||||
|
const projectDir = '/app';
|
||||||
|
const mockUpdateAppJsonConfigAsync = updateAppJsonConfigAsync as jest.MockedFunction<
|
||||||
|
typeof updateAppJsonConfigAsync
|
||||||
|
>;
|
||||||
|
|
||||||
|
it('should bump expo.version for valid semver', async () => {
|
||||||
|
const appVersion = '1.0.0';
|
||||||
|
const exp: ExpoConfig = {
|
||||||
|
name,
|
||||||
|
slug,
|
||||||
|
version: appVersion,
|
||||||
|
};
|
||||||
|
|
||||||
|
await bumpAppVersionAsync({ appVersion, projectDir, exp, platform: Platform.IOS });
|
||||||
|
expect(mockUpdateAppJsonConfigAsync).toHaveBeenCalled();
|
||||||
|
expect(exp.version).toBe('1.0.1');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should bump expo.android.version if the expo.android.version exists', async () => {
|
||||||
|
const exp: ExpoConfig = {
|
||||||
|
name,
|
||||||
|
slug,
|
||||||
|
version: '0.0.0',
|
||||||
|
android: {
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
version: '1.0.0',
|
||||||
|
},
|
||||||
|
ios: {
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
version: '2.0.0',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
await bumpAppVersionAsync({ appVersion: '1.0.0', projectDir, exp, platform: Platform.ANDROID });
|
||||||
|
expect(mockUpdateAppJsonConfigAsync).toHaveBeenCalled();
|
||||||
|
expect(exp.version).toBe('0.0.0');
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
expect(exp.android.version).toBe('1.0.1');
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
expect(exp.ios.version).toBe('2.0.0');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should bump expo.ios.version if the expo.ios.version exists', async () => {
|
||||||
|
const exp: ExpoConfig = {
|
||||||
|
name,
|
||||||
|
slug,
|
||||||
|
version: '0.0.0',
|
||||||
|
android: {
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
version: '1.0.0',
|
||||||
|
},
|
||||||
|
ios: {
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
version: '2.0.0',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
await bumpAppVersionAsync({ appVersion: '2.0.0', projectDir, exp, platform: Platform.IOS });
|
||||||
|
expect(mockUpdateAppJsonConfigAsync).toHaveBeenCalled();
|
||||||
|
expect(exp.version).toBe('0.0.0');
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
expect(exp.android.version).toBe('1.0.0');
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
expect(exp.ios.version).toBe('2.0.1');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe(getVersionConfigTarget, () => {
|
||||||
|
const exp: ExpoConfig = {
|
||||||
|
name: 'test',
|
||||||
|
slug: 'test',
|
||||||
|
version: '0.0.0',
|
||||||
|
android: {
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
version: '1.0.0',
|
||||||
|
},
|
||||||
|
ios: {
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
version: '2.0.0',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
it('should return the correct config target for the android platform', () => {
|
||||||
|
const { fieldName, versionGetter, versionUpdater } = getVersionConfigTarget({
|
||||||
|
exp,
|
||||||
|
platform: Platform.ANDROID,
|
||||||
|
});
|
||||||
|
expect(fieldName).toBe('expo.android.version');
|
||||||
|
expect(versionGetter(exp)).toBe('1.0.0');
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
expect(versionUpdater(exp, '3.3.3').android.version).toBe('3.3.3');
|
||||||
|
expect(versionUpdater(exp, '0.0.0').version).toBe('0.0.0');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return the correct config target for the ios platform', () => {
|
||||||
|
const { fieldName, versionGetter, versionUpdater } = getVersionConfigTarget({
|
||||||
|
exp,
|
||||||
|
platform: Platform.IOS,
|
||||||
|
});
|
||||||
|
expect(fieldName).toBe('expo.ios.version');
|
||||||
|
expect(versionGetter(exp)).toBe('2.0.0');
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
expect(versionUpdater(exp, '3.3.3').ios.version).toBe('3.3.3');
|
||||||
|
expect(versionUpdater(exp, '0.0.0').version).toBe('0.0.0');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return the correct config target for common version', () => {
|
||||||
|
const exp: ExpoConfig = {
|
||||||
|
name: 'test',
|
||||||
|
slug: 'test',
|
||||||
|
version: '0.0.0',
|
||||||
|
};
|
||||||
|
const { fieldName, versionGetter, versionUpdater } = getVersionConfigTarget({
|
||||||
|
exp,
|
||||||
|
platform: Platform.IOS,
|
||||||
|
});
|
||||||
|
expect(fieldName).toBe('expo.version');
|
||||||
|
expect(versionGetter(exp)).toBe('0.0.0');
|
||||||
|
expect(versionUpdater(exp, '3.3.3').version).toBe('3.3.3');
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import { ExpoConfig, getConfigFilePaths } from '@expo/config';
|
import { ExpoConfig, getConfigFilePaths } from '@expo/config';
|
||||||
|
import { Platform } from '@expo/eas-build-job';
|
||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
import nullthrows from 'nullthrows';
|
import nullthrows from 'nullthrows';
|
||||||
import semver from 'semver';
|
import semver from 'semver';
|
||||||
@@ -18,21 +19,25 @@ export async function bumpAppVersionAsync({
|
|||||||
appVersion,
|
appVersion,
|
||||||
projectDir,
|
projectDir,
|
||||||
exp,
|
exp,
|
||||||
|
platform,
|
||||||
}: {
|
}: {
|
||||||
appVersion: string;
|
appVersion: string;
|
||||||
projectDir: string;
|
projectDir: string;
|
||||||
exp: ExpoConfig;
|
exp: ExpoConfig;
|
||||||
|
platform: Platform;
|
||||||
}): Promise<void> {
|
}): Promise<void> {
|
||||||
|
const { fieldName, versionUpdater } = getVersionConfigTarget({ exp, platform });
|
||||||
|
|
||||||
let bumpedAppVersion: string;
|
let bumpedAppVersion: string;
|
||||||
if (semver.valid(appVersion)) {
|
if (semver.valid(appVersion)) {
|
||||||
bumpedAppVersion = nullthrows(semver.inc(appVersion, 'patch'));
|
bumpedAppVersion = nullthrows(semver.inc(appVersion, 'patch'));
|
||||||
Log.log(
|
Log.log(
|
||||||
`Bumping ${chalk.bold('expo.version')} from ${chalk.bold(appVersion)} to ${chalk.bold(
|
`Bumping ${chalk.bold(fieldName)} from ${chalk.bold(appVersion)} to ${chalk.bold(
|
||||||
bumpedAppVersion
|
bumpedAppVersion
|
||||||
)}`
|
)}`
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Log.log(`${chalk.bold('expo.version')} = ${chalk.bold(appVersion)} is not a valid semver`);
|
Log.log(`${chalk.bold(fieldName)} = ${chalk.bold(appVersion)} is not a valid semver`);
|
||||||
bumpedAppVersion = (
|
bumpedAppVersion = (
|
||||||
await promptAsync({
|
await promptAsync({
|
||||||
type: 'text',
|
type: 'text',
|
||||||
@@ -42,6 +47,56 @@ export async function bumpAppVersionAsync({
|
|||||||
).bumpedAppVersion;
|
).bumpedAppVersion;
|
||||||
}
|
}
|
||||||
await updateAppJsonConfigAsync({ projectDir, exp }, config => {
|
await updateAppJsonConfigAsync({ projectDir, exp }, config => {
|
||||||
config.version = bumpedAppVersion;
|
versionUpdater(config, bumpedAppVersion);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the target version field from ExpoConfig based on the platform.
|
||||||
|
*/
|
||||||
|
export function getVersionConfigTarget({
|
||||||
|
exp,
|
||||||
|
platform,
|
||||||
|
}: {
|
||||||
|
exp: ExpoConfig;
|
||||||
|
platform: Platform;
|
||||||
|
}): {
|
||||||
|
fieldName: string;
|
||||||
|
versionGetter: (config: ExpoConfig) => string | undefined;
|
||||||
|
versionUpdater: (config: ExpoConfig, version: string) => ExpoConfig;
|
||||||
|
} {
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
if (platform === Platform.ANDROID && typeof exp.android?.version === 'string') {
|
||||||
|
return {
|
||||||
|
fieldName: 'expo.android.version',
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
versionGetter: config => config.android?.version,
|
||||||
|
versionUpdater: (config, version) => {
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
config.android = { ...config.android, version };
|
||||||
|
return config;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
} else if (platform === Platform.IOS && typeof exp.ios?.version === 'string') {
|
||||||
|
return {
|
||||||
|
fieldName: 'expo.ios.version',
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
versionGetter: config => config.ios?.version,
|
||||||
|
versionUpdater: (config, version) => {
|
||||||
|
// @ts-expect-error: Resolve type errors after upgrading `@expo/config`
|
||||||
|
config.ios = { ...config.ios, version };
|
||||||
|
return config;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
fieldName: 'expo.version',
|
||||||
|
versionGetter: config => config.version,
|
||||||
|
versionUpdater: (config, version) => {
|
||||||
|
config.version = version;
|
||||||
|
return config;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ import { Flags } from '@oclif/core';
|
|||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
|
|
||||||
import { evaluateConfigWithEnvVarsAsync } from '../../../build/evaluateConfigWithEnvVarsAsync';
|
import { evaluateConfigWithEnvVarsAsync } from '../../../build/evaluateConfigWithEnvVarsAsync';
|
||||||
|
import { getVersionConfigTarget } from '../../../build/utils/version';
|
||||||
import EasCommand from '../../../commandUtils/EasCommand';
|
import EasCommand from '../../../commandUtils/EasCommand';
|
||||||
import { AppVersionMutation } from '../../../graphql/mutations/AppVersionMutation';
|
import { AppVersionMutation } from '../../../graphql/mutations/AppVersionMutation';
|
||||||
import { AppVersionQuery } from '../../../graphql/queries/AppVersionQuery';
|
import { AppVersionQuery } from '../../../graphql/queries/AppVersionQuery';
|
||||||
@@ -111,6 +112,7 @@ export default class BuildVersionSetView extends EasCommand {
|
|||||||
: `What version would you like to initialize it with?`;
|
: `What version would you like to initialize it with?`;
|
||||||
Log.log(currentStateMessage);
|
Log.log(currentStateMessage);
|
||||||
|
|
||||||
|
const { versionGetter } = getVersionConfigTarget({ exp, platform });
|
||||||
const { version } = await promptAsync({
|
const { version } = await promptAsync({
|
||||||
type: platform === Platform.ANDROID ? 'number' : 'text',
|
type: platform === Platform.ANDROID ? 'number' : 'text',
|
||||||
name: 'version',
|
name: 'version',
|
||||||
@@ -124,7 +126,7 @@ export default class BuildVersionSetView extends EasCommand {
|
|||||||
appId: projectId,
|
appId: projectId,
|
||||||
platform: toAppPlatform(platform),
|
platform: toAppPlatform(platform),
|
||||||
applicationIdentifier,
|
applicationIdentifier,
|
||||||
storeVersion: exp.version ?? '1.0.0',
|
storeVersion: versionGetter(exp) ?? '1.0.0',
|
||||||
buildVersion: String(version),
|
buildVersion: String(version),
|
||||||
runtimeVersion:
|
runtimeVersion:
|
||||||
(await getRuntimeVersionNullableAsync(projectDir, exp, platform)) ?? undefined,
|
(await getRuntimeVersionNullableAsync(projectDir, exp, platform)) ?? undefined,
|
||||||
|
|||||||
Reference in new issue
Block a user