mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00
Improve androidVersionCode parsing and application (#297)
This commit is contained in:
parent
13fdcad790
commit
11a0d0947e
@ -15,7 +15,12 @@ namespace UnityBuilderAction.Versioning
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void SetAndroidVersionCode(string androidVersionCode) {
|
public static void SetAndroidVersionCode(string androidVersionCode) {
|
||||||
PlayerSettings.Android.bundleVersionCode = Int32.Parse(androidVersionCode);
|
int bundleVersionCode = Int32.Parse(androidVersionCode);
|
||||||
|
if (bundleVersionCode <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerSettings.Android.bundleVersionCode = bundleVersionCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Apply(string version)
|
static void Apply(string version)
|
||||||
|
BIN
dist/index.js
generated
vendored
BIN
dist/index.js
generated
vendored
Binary file not shown.
BIN
dist/index.js.map
generated
vendored
BIN
dist/index.js.map
generated
vendored
Binary file not shown.
@ -2,6 +2,10 @@ import AndroidVersioning from './android-versioning';
|
|||||||
|
|
||||||
describe('Android Versioning', () => {
|
describe('Android Versioning', () => {
|
||||||
describe('versionToVersionCode', () => {
|
describe('versionToVersionCode', () => {
|
||||||
|
it('defaults to 0 when versioning strategy is none', () => {
|
||||||
|
expect(AndroidVersioning.versionToVersionCode('none')).toBe(0);
|
||||||
|
});
|
||||||
|
|
||||||
it('defaults to 1 when version is not a valid semver', () => {
|
it('defaults to 1 when version is not a valid semver', () => {
|
||||||
expect(AndroidVersioning.versionToVersionCode('abcd')).toBe(1);
|
expect(AndroidVersioning.versionToVersionCode('abcd')).toBe(1);
|
||||||
});
|
});
|
||||||
@ -11,7 +15,7 @@ describe('Android Versioning', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('throw when generated version code is too large', () => {
|
it('throw when generated version code is too large', () => {
|
||||||
expect(() => AndroidVersioning.versionToVersionCode('1234.0.0')).toThrow();
|
expect(() => AndroidVersioning.versionToVersionCode('2050.0.0')).toThrow();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -10,6 +10,11 @@ export default class AndroidVersioning {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static versionToVersionCode(version) {
|
static versionToVersionCode(version) {
|
||||||
|
if (version === 'none') {
|
||||||
|
core.info(`Versioning strategy is set to ${version}, so android version code should not be applied.`);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
const parsedVersion = semver.parse(version);
|
const parsedVersion = semver.parse(version);
|
||||||
|
|
||||||
if (!parsedVersion) {
|
if (!parsedVersion) {
|
||||||
@ -21,7 +26,7 @@ export default class AndroidVersioning {
|
|||||||
// Allow for 3 patch digits, 3 minor digits and 3 major digits.
|
// Allow for 3 patch digits, 3 minor digits and 3 major digits.
|
||||||
const versionCode = parsedVersion.major * 1000000 + parsedVersion.minor * 1000 + parsedVersion.patch;
|
const versionCode = parsedVersion.major * 1000000 + parsedVersion.minor * 1000 + parsedVersion.patch;
|
||||||
|
|
||||||
if (versionCode >= 1000000000) {
|
if (versionCode >= 2050000000) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Generated versionCode ${versionCode} is dangerously close to the maximum allowed number 2100000000. Consider a different versioning scheme to be able to continue updating your application.`,
|
`Generated versionCode ${versionCode} is dangerously close to the maximum allowed number 2100000000. Consider a different versioning scheme to be able to continue updating your application.`,
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user