mirror of
https://github.com/game-ci/unity-builder.git
synced 2026-02-03 23:49:08 +08:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b11b6a6f2c | ||
|
|
461ecf7cea | ||
|
|
f2250e958e | ||
|
|
dd427466ce | ||
|
|
0c16aab353 | ||
|
|
fc0a52b805 | ||
|
|
e820c9ce7b | ||
|
|
f4d2cceeb5 |
1
.github/workflows/build-tests-mac.yml
vendored
1
.github/workflows/build-tests-mac.yml
vendored
@@ -20,7 +20,6 @@ jobs:
|
|||||||
unityVersion:
|
unityVersion:
|
||||||
- 2021.3.32f1
|
- 2021.3.32f1
|
||||||
- 2022.3.13f1
|
- 2022.3.13f1
|
||||||
- 2023.1.19f1
|
|
||||||
- 2023.2.2f1
|
- 2023.2.2f1
|
||||||
targetPlatform:
|
targetPlatform:
|
||||||
- StandaloneOSX # Build a MacOS executable
|
- StandaloneOSX # Build a MacOS executable
|
||||||
|
|||||||
59
.github/workflows/build-tests-ubuntu.yml
vendored
59
.github/workflows/build-tests-ubuntu.yml
vendored
@@ -49,15 +49,49 @@ jobs:
|
|||||||
unityVersion:
|
unityVersion:
|
||||||
- 2021.3.32f1
|
- 2021.3.32f1
|
||||||
- 2022.3.13f1
|
- 2022.3.13f1
|
||||||
- 2023.1.19f1
|
|
||||||
- 2023.2.2f1
|
- 2023.2.2f1
|
||||||
targetPlatform:
|
targetPlatform:
|
||||||
- StandaloneOSX # Build a macOS standalone (Intel 64-bit) with mono backend.
|
- StandaloneOSX # Build a macOS standalone (Intel 64-bit) with mono backend.
|
||||||
- StandaloneWindows64 # Build a Windows 64-bit standalone with mono backend.
|
- StandaloneWindows64 # Build a Windows 64-bit standalone with mono backend.
|
||||||
- StandaloneLinux64 # Build a Linux 64-bit standalone with mono backend.
|
- StandaloneLinux64 # Build a Linux 64-bit standalone with mono/il2cpp backend.
|
||||||
- iOS # Build an iOS player.
|
- iOS # Build an iOS project.
|
||||||
- Android # Build an Android .apk.
|
- Android # Build an Android .apk.
|
||||||
- WebGL # WebGL.
|
- WebGL # WebGL.
|
||||||
|
buildWithIl2cpp:
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
additionalParameters:
|
||||||
|
- -param value
|
||||||
|
- -standaloneBuildSubtarget Server
|
||||||
|
# Skipping configurations that are not supported
|
||||||
|
exclude:
|
||||||
|
# No il2cpp support on Linux Host
|
||||||
|
- targetPlatform: StandaloneOSX
|
||||||
|
buildWithIl2cpp: true
|
||||||
|
- targetPlatform: StandaloneWindows64
|
||||||
|
buildWithIl2cpp: true
|
||||||
|
# Only builds with Il2cpp
|
||||||
|
- targetPlatform: iOS
|
||||||
|
buildWithIl2cpp: false
|
||||||
|
- targetPlatform: Android
|
||||||
|
buildWithIl2cpp: false
|
||||||
|
- targetPlatform: WebGL
|
||||||
|
buildWithIl2cpp: false
|
||||||
|
# No dedicated server support
|
||||||
|
- targetPlatform: WebGL
|
||||||
|
additionalParameters: -standaloneBuildSubtarget Server
|
||||||
|
- targetPlatform: Android
|
||||||
|
additionalParameters: -standaloneBuildSubtarget Server
|
||||||
|
- targetPlatform: iOS
|
||||||
|
additionalParameters: -standaloneBuildSubtarget Server
|
||||||
|
# No dedicated server support on Linux Host
|
||||||
|
- targetPlatform: StandaloneOSX
|
||||||
|
additionalParameters: -standaloneBuildSubtarget Server
|
||||||
|
# No il2cpp dedicated server support on Linux Host
|
||||||
|
- targetPlatform: StandaloneWindows64
|
||||||
|
additionalParameters: -standaloneBuildSubtarget Server
|
||||||
|
buildWithIl2cpp: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Clear Space for Android Build
|
- name: Clear Space for Android Build
|
||||||
if: matrix.targetPlatform == 'Android'
|
if: matrix.targetPlatform == 'Android'
|
||||||
@@ -81,6 +115,14 @@ jobs:
|
|||||||
Library-${{ matrix.projectPath }}-ubuntu-
|
Library-${{ matrix.projectPath }}-ubuntu-
|
||||||
Library-
|
Library-
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Set Scripting Backend #
|
||||||
|
###########################
|
||||||
|
- name: Set Scripting Backend To il2cpp
|
||||||
|
if: matrix.buildWithIl2cpp == true
|
||||||
|
run: |
|
||||||
|
mv -f "./test-project/ProjectSettings/ProjectSettingsIl2cpp.asset" "./test-project/ProjectSettings/ProjectSettings.asset"
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
# Build #
|
# Build #
|
||||||
###########################
|
###########################
|
||||||
@@ -96,8 +138,9 @@ jobs:
|
|||||||
projectPath: ${{ matrix.projectPath }}
|
projectPath: ${{ matrix.projectPath }}
|
||||||
unityVersion: ${{ matrix.unityVersion }}
|
unityVersion: ${{ matrix.unityVersion }}
|
||||||
targetPlatform: ${{ matrix.targetPlatform }}
|
targetPlatform: ${{ matrix.targetPlatform }}
|
||||||
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
|
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue ${{ matrix.additionalParameters }}
|
||||||
providerStrategy: ${{ matrix.providerStrategy }}
|
providerStrategy: ${{ matrix.providerStrategy }}
|
||||||
|
allowDirtyBuild: true
|
||||||
|
|
||||||
- name: Sleep for Retry
|
- name: Sleep for Retry
|
||||||
if: ${{ steps.build-1.outcome == 'failure' }}
|
if: ${{ steps.build-1.outcome == 'failure' }}
|
||||||
@@ -117,7 +160,7 @@ jobs:
|
|||||||
projectPath: ${{ matrix.projectPath }}
|
projectPath: ${{ matrix.projectPath }}
|
||||||
unityVersion: ${{ matrix.unityVersion }}
|
unityVersion: ${{ matrix.unityVersion }}
|
||||||
targetPlatform: ${{ matrix.targetPlatform }}
|
targetPlatform: ${{ matrix.targetPlatform }}
|
||||||
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
|
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue ${{ matrix.additionalParameters }}
|
||||||
providerStrategy: ${{ matrix.providerStrategy }}
|
providerStrategy: ${{ matrix.providerStrategy }}
|
||||||
allowDirtyBuild: true
|
allowDirtyBuild: true
|
||||||
|
|
||||||
@@ -138,7 +181,7 @@ jobs:
|
|||||||
projectPath: ${{ matrix.projectPath }}
|
projectPath: ${{ matrix.projectPath }}
|
||||||
unityVersion: ${{ matrix.unityVersion }}
|
unityVersion: ${{ matrix.unityVersion }}
|
||||||
targetPlatform: ${{ matrix.targetPlatform }}
|
targetPlatform: ${{ matrix.targetPlatform }}
|
||||||
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
|
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue ${{ matrix.additionalParameters }}
|
||||||
providerStrategy: ${{ matrix.providerStrategy }}
|
providerStrategy: ${{ matrix.providerStrategy }}
|
||||||
allowDirtyBuild: true
|
allowDirtyBuild: true
|
||||||
|
|
||||||
@@ -147,6 +190,8 @@ jobs:
|
|||||||
###########################
|
###########################
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Build ${{ matrix.targetPlatform }} on Ubuntu (${{ matrix.unityVersion }})
|
name:
|
||||||
|
'Build ${{ matrix.targetPlatform }} on Ubuntu (${{ matrix.unityVersion }}_il2cpp_${{ matrix.buildWithIl2cpp
|
||||||
|
}}_params_${{ matrix.additionalParameters }})'
|
||||||
path: build
|
path: build
|
||||||
retention-days: 14
|
retention-days: 14
|
||||||
|
|||||||
1
.github/workflows/build-tests-windows.yml
vendored
1
.github/workflows/build-tests-windows.yml
vendored
@@ -20,7 +20,6 @@ jobs:
|
|||||||
unityVersion:
|
unityVersion:
|
||||||
- 2021.3.32f1
|
- 2021.3.32f1
|
||||||
- 2022.3.13f1
|
- 2022.3.13f1
|
||||||
- 2023.1.19f1
|
|
||||||
- 2023.2.2f1
|
- 2023.2.2f1
|
||||||
targetPlatform:
|
targetPlatform:
|
||||||
- Android # Build an Android apk.
|
- Android # Build an Android apk.
|
||||||
|
|||||||
@@ -35,6 +35,10 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: 'Suppresses `-quit`. Exit your build method using `EditorApplication.Exit(0)` instead.'
|
description: 'Suppresses `-quit`. Exit your build method using `EditorApplication.Exit(0)` instead.'
|
||||||
|
enableGpu:
|
||||||
|
required: false
|
||||||
|
default: ''
|
||||||
|
description: 'Launches unity without specifying `-nographics`.'
|
||||||
customParameters:
|
customParameters:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
|
|||||||
59
dist/index.js
generated
vendored
59
dist/index.js
generated
vendored
@@ -303,6 +303,7 @@ class BuildParameters {
|
|||||||
buildMethod: input_1.default.buildMethod,
|
buildMethod: input_1.default.buildMethod,
|
||||||
buildVersion,
|
buildVersion,
|
||||||
manualExit: input_1.default.manualExit,
|
manualExit: input_1.default.manualExit,
|
||||||
|
enableGpu: input_1.default.enableGpu,
|
||||||
androidVersionCode,
|
androidVersionCode,
|
||||||
androidKeystoreName: input_1.default.androidKeystoreName,
|
androidKeystoreName: input_1.default.androidKeystoreName,
|
||||||
androidKeystoreBase64: input_1.default.androidKeystoreBase64,
|
androidKeystoreBase64: input_1.default.androidKeystoreBase64,
|
||||||
@@ -6107,6 +6108,7 @@ class Docker {
|
|||||||
--volume "C:/ProgramData/Microsoft/VisualStudio":"C:/ProgramData/Microsoft/VisualStudio" \
|
--volume "C:/ProgramData/Microsoft/VisualStudio":"C:/ProgramData/Microsoft/VisualStudio" \
|
||||||
--volume "${actionFolder}/default-build-script":"c:/UnityBuilderAction" \
|
--volume "${actionFolder}/default-build-script":"c:/UnityBuilderAction" \
|
||||||
--volume "${actionFolder}/platforms/windows":"c:/steps" \
|
--volume "${actionFolder}/platforms/windows":"c:/steps" \
|
||||||
|
--volume "${actionFolder}/unity-config":"C:/ProgramData/Unity/config" \
|
||||||
--volume "${actionFolder}/BlankProject":"c:/BlankProject" \
|
--volume "${actionFolder}/BlankProject":"c:/BlankProject" \
|
||||||
--cpus=${dockerCpuLimit} \
|
--cpus=${dockerCpuLimit} \
|
||||||
--memory=${dockerMemoryLimit} \
|
--memory=${dockerMemoryLimit} \
|
||||||
@@ -6430,6 +6432,7 @@ class ImageEnvironmentFactory {
|
|||||||
{ name: 'BUILD_FILE', value: parameters.buildFile },
|
{ name: 'BUILD_FILE', value: parameters.buildFile },
|
||||||
{ name: 'BUILD_METHOD', value: parameters.buildMethod },
|
{ name: 'BUILD_METHOD', value: parameters.buildMethod },
|
||||||
{ name: 'MANUAL_EXIT', value: parameters.manualExit },
|
{ name: 'MANUAL_EXIT', value: parameters.manualExit },
|
||||||
|
{ name: 'ENABLE_GPU', value: parameters.enableGpu },
|
||||||
{ name: 'VERSION', value: parameters.buildVersion },
|
{ name: 'VERSION', value: parameters.buildVersion },
|
||||||
{ name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode },
|
{ name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode },
|
||||||
{ name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName },
|
{ name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName },
|
||||||
@@ -6503,7 +6506,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|||||||
const platform_1 = __importDefault(__nccwpck_require__(9707));
|
const platform_1 = __importDefault(__nccwpck_require__(9707));
|
||||||
class ImageTag {
|
class ImageTag {
|
||||||
constructor(imageProperties) {
|
constructor(imageProperties) {
|
||||||
const { editorVersion, targetPlatform, customImage, buildPlatform, containerRegistryRepository, containerRegistryImageVersion, } = imageProperties;
|
const { editorVersion, targetPlatform, customImage, buildPlatform, containerRegistryRepository, containerRegistryImageVersion, providerStrategy, } = imageProperties;
|
||||||
if (!ImageTag.versionPattern.test(editorVersion)) {
|
if (!ImageTag.versionPattern.test(editorVersion)) {
|
||||||
throw new Error(`Invalid version "${editorVersion}".`);
|
throw new Error(`Invalid version "${editorVersion}".`);
|
||||||
}
|
}
|
||||||
@@ -6514,12 +6517,12 @@ class ImageTag {
|
|||||||
this.repository = containerRegistryRepository;
|
this.repository = containerRegistryRepository;
|
||||||
this.editorVersion = editorVersion;
|
this.editorVersion = editorVersion;
|
||||||
this.targetPlatform = targetPlatform;
|
this.targetPlatform = targetPlatform;
|
||||||
this.builderPlatform = ImageTag.getTargetPlatformToTargetPlatformSuffixMap(targetPlatform, editorVersion);
|
this.builderPlatform = ImageTag.getTargetPlatformToTargetPlatformSuffixMap(targetPlatform, editorVersion, providerStrategy);
|
||||||
this.imagePlatformPrefix = ImageTag.getImagePlatformPrefixes(buildPlatform);
|
this.imagePlatformPrefix = ImageTag.getImagePlatformPrefixes(buildPlatform);
|
||||||
this.imageRollingVersion = Number(containerRegistryImageVersion); // Will automatically roll to the latest non-breaking version.
|
this.imageRollingVersion = Number(containerRegistryImageVersion); // Will automatically roll to the latest non-breaking version.
|
||||||
}
|
}
|
||||||
static get versionPattern() {
|
static get versionPattern() {
|
||||||
return /^(20\d{2}\.\d\.\w{3,4}|3)$/;
|
return /^\d+\.\d+\.\d+[a-z]\d+$/;
|
||||||
}
|
}
|
||||||
static get targetPlatformSuffixes() {
|
static get targetPlatformSuffixes() {
|
||||||
return {
|
return {
|
||||||
@@ -6550,7 +6553,7 @@ class ImageTag {
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static getTargetPlatformToTargetPlatformSuffixMap(platform, version) {
|
static getTargetPlatformToTargetPlatformSuffixMap(platform, version, providerStrategy) {
|
||||||
const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } = ImageTag.targetPlatformSuffixes;
|
const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } = ImageTag.targetPlatformSuffixes;
|
||||||
const [major, minor] = version.split('.').map((digit) => Number(digit));
|
const [major, minor] = version.split('.').map((digit) => Number(digit));
|
||||||
// @see: https://docs.unity3d.com/ScriptReference/BuildTarget.html
|
// @see: https://docs.unity3d.com/ScriptReference/BuildTarget.html
|
||||||
@@ -6573,8 +6576,13 @@ class ImageTag {
|
|||||||
return windows;
|
return windows;
|
||||||
case platform_1.default.types.StandaloneLinux64: {
|
case platform_1.default.types.StandaloneLinux64: {
|
||||||
// Unity versions before 2019.3 do not support il2cpp
|
// Unity versions before 2019.3 do not support il2cpp
|
||||||
if (process.env.USE_IL2CPP === 'true' && (major >= 2020 || (major === 2019 && minor >= 3))) {
|
if (major >= 2020 || (major === 2019 && minor >= 3)) {
|
||||||
return linuxIl2cpp;
|
if (providerStrategy === 'local') {
|
||||||
|
return linuxIl2cpp;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return process.env.USE_IL2CPP === 'true' ? linuxIl2cpp : linux;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return linux;
|
return linux;
|
||||||
}
|
}
|
||||||
@@ -6979,6 +6987,10 @@ class Input {
|
|||||||
const input = Input.getInput('manualExit') ?? false;
|
const input = Input.getInput('manualExit') ?? false;
|
||||||
return input === 'true';
|
return input === 'true';
|
||||||
}
|
}
|
||||||
|
static get enableGpu() {
|
||||||
|
const input = Input.getInput('enableGpu') ?? false;
|
||||||
|
return input === 'true';
|
||||||
|
}
|
||||||
static get customParameters() {
|
static get customParameters() {
|
||||||
return Input.getInput('customParameters') ?? '';
|
return Input.getInput('customParameters') ?? '';
|
||||||
}
|
}
|
||||||
@@ -7429,6 +7441,7 @@ class SetupMac {
|
|||||||
process.env.UNITY_VERSION = buildParameters.editorVersion;
|
process.env.UNITY_VERSION = buildParameters.editorVersion;
|
||||||
process.env.UNITY_SERIAL = buildParameters.unitySerial;
|
process.env.UNITY_SERIAL = buildParameters.unitySerial;
|
||||||
process.env.UNITY_LICENSING_SERVER = buildParameters.unityLicensingServer;
|
process.env.UNITY_LICENSING_SERVER = buildParameters.unityLicensingServer;
|
||||||
|
process.env.SKIP_ACTIVATION = buildParameters.skipActivation;
|
||||||
process.env.PROJECT_PATH = buildParameters.projectPath;
|
process.env.PROJECT_PATH = buildParameters.projectPath;
|
||||||
process.env.BUILD_TARGET = buildParameters.targetPlatform;
|
process.env.BUILD_TARGET = buildParameters.targetPlatform;
|
||||||
process.env.BUILD_NAME = buildParameters.buildName;
|
process.env.BUILD_NAME = buildParameters.buildName;
|
||||||
@@ -7449,6 +7462,7 @@ class SetupMac {
|
|||||||
process.env.CUSTOM_PARAMETERS = buildParameters.customParameters;
|
process.env.CUSTOM_PARAMETERS = buildParameters.customParameters;
|
||||||
process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo;
|
process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo;
|
||||||
process.env.MANUAL_EXIT = buildParameters.manualExit.toString();
|
process.env.MANUAL_EXIT = buildParameters.manualExit.toString();
|
||||||
|
process.env.ENABLE_GPU = buildParameters.enableGpu.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SetupMac.unityHubBasePath = `/Applications/"Unity Hub.app"`;
|
SetupMac.unityHubBasePath = `/Applications/"Unity Hub.app"`;
|
||||||
@@ -7511,9 +7525,12 @@ const node_fs_1 = __importDefault(__nccwpck_require__(87561));
|
|||||||
class ValidateWindows {
|
class ValidateWindows {
|
||||||
static validate(buildParameters) {
|
static validate(buildParameters) {
|
||||||
ValidateWindows.validateWindowsPlatformRequirements(buildParameters.targetPlatform);
|
ValidateWindows.validateWindowsPlatformRequirements(buildParameters.targetPlatform);
|
||||||
if (!(process.env.UNITY_EMAIL && process.env.UNITY_PASSWORD)) {
|
const { unityLicensingServer } = buildParameters;
|
||||||
throw new Error(`Unity email and password must be set for Windows based builds to
|
const hasLicensingCredentials = process.env.UNITY_EMAIL && process.env.UNITY_PASSWORD;
|
||||||
authenticate the license. Make sure to set them inside UNITY_EMAIL
|
const hasValidLicensingStrategy = hasLicensingCredentials || unityLicensingServer;
|
||||||
|
if (!hasValidLicensingStrategy) {
|
||||||
|
throw new Error(`Unity email and password or alternatively a Unity licensing server url must be set for
|
||||||
|
Windows based builds to authenticate the license. Make sure to set them inside UNITY_EMAIL
|
||||||
and UNITY_PASSWORD in Github Secrets and pass them into the environment.`);
|
and UNITY_PASSWORD in Github Secrets and pass them into the environment.`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7744,9 +7761,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|||||||
const node_fs_1 = __importDefault(__nccwpck_require__(87561));
|
const node_fs_1 = __importDefault(__nccwpck_require__(87561));
|
||||||
const node_path_1 = __importDefault(__nccwpck_require__(49411));
|
const node_path_1 = __importDefault(__nccwpck_require__(49411));
|
||||||
class UnityVersioning {
|
class UnityVersioning {
|
||||||
static get versionPattern() {
|
|
||||||
return /20\d{2}\.\d\.\w{3,4}|3/;
|
|
||||||
}
|
|
||||||
static determineUnityVersion(projectPath, unityVersion) {
|
static determineUnityVersion(projectPath, unityVersion) {
|
||||||
if (unityVersion === 'auto') {
|
if (unityVersion === 'auto') {
|
||||||
return UnityVersioning.read(projectPath);
|
return UnityVersioning.read(projectPath);
|
||||||
@@ -7761,11 +7775,12 @@ class UnityVersioning {
|
|||||||
return UnityVersioning.parse(node_fs_1.default.readFileSync(filePath, 'utf8'));
|
return UnityVersioning.parse(node_fs_1.default.readFileSync(filePath, 'utf8'));
|
||||||
}
|
}
|
||||||
static parse(projectVersionTxt) {
|
static parse(projectVersionTxt) {
|
||||||
const matches = projectVersionTxt.match(UnityVersioning.versionPattern);
|
const versionRegex = /m_EditorVersion: (\d+\.\d+\.\d+[A-Za-z]?\d+)/;
|
||||||
if (!matches || matches.length === 0) {
|
const matches = projectVersionTxt.match(versionRegex);
|
||||||
throw new Error(`Failed to parse version from "${projectVersionTxt}".`);
|
if (!matches || matches.length < 2) {
|
||||||
|
throw new Error(`Failed to extract version from "${projectVersionTxt}".`);
|
||||||
}
|
}
|
||||||
return matches[0];
|
return matches[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports["default"] = UnityVersioning;
|
exports["default"] = UnityVersioning;
|
||||||
@@ -7995,7 +8010,17 @@ class Versioning {
|
|||||||
* identifies the current commit.
|
* identifies the current commit.
|
||||||
*/
|
*/
|
||||||
static async getVersionDescription() {
|
static async getVersionDescription() {
|
||||||
return this.git(['describe', '--long', '--tags', '--always', 'HEAD']);
|
const versionTags = (await this.git(['tag', '--list', '--merged', 'HEAD', '--sort=-creatordate']))
|
||||||
|
.split('\n')
|
||||||
|
.filter(tag => new RegExp(this.grepCompatibleInputVersionRegex).test(tag));
|
||||||
|
if (versionTags.length === 0) {
|
||||||
|
core.warning('No valid version tags found. Using fallback description.');
|
||||||
|
return this.git(['describe', '--long', '--tags', '--always', 'HEAD']);
|
||||||
|
}
|
||||||
|
const latestVersionTag = versionTags[0];
|
||||||
|
const commitsCount = (await this.git(['rev-list', `${latestVersionTag}..HEAD`, '--count'])).trim();
|
||||||
|
const commitHash = (await this.git(['rev-parse', '--short', 'HEAD'])).trim();
|
||||||
|
return `${latestVersionTag}-${commitsCount}-g${commitHash}`;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Returns whether there are uncommitted changes that are not ignored.
|
* Returns whether there are uncommitted changes that are not ignored.
|
||||||
|
|||||||
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
dist/platforms/mac/steps/build.sh
vendored
2
dist/platforms/mac/steps/build.sh
vendored
@@ -131,7 +131,7 @@ echo ""
|
|||||||
-logFile - \
|
-logFile - \
|
||||||
$( [ "${MANUAL_EXIT}" == "true" ] || echo "-quit" ) \
|
$( [ "${MANUAL_EXIT}" == "true" ] || echo "-quit" ) \
|
||||||
-batchmode \
|
-batchmode \
|
||||||
-nographics \
|
$( [ "${ENABLE_GPU}" == "true" ] || echo "-nographics" ) \
|
||||||
-username "$UNITY_EMAIL" \
|
-username "$UNITY_EMAIL" \
|
||||||
-password "$UNITY_PASSWORD" \
|
-password "$UNITY_PASSWORD" \
|
||||||
-customBuildName "$BUILD_NAME" \
|
-customBuildName "$BUILD_NAME" \
|
||||||
|
|||||||
24
dist/platforms/windows/activate.ps1
vendored
24
dist/platforms/windows/activate.ps1
vendored
@@ -50,6 +50,30 @@ if ( ($null -ne ${env:UNITY_SERIAL}) -and ($null -ne ${env:UNITY_EMAIL}) -and ($
|
|||||||
Start-Sleep -Seconds 3
|
Start-Sleep -Seconds 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
elseif( ($null -ne ${env:UNITY_LICENSING_SERVER}))
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Custom Unity License Server
|
||||||
|
#
|
||||||
|
|
||||||
|
Write-Output "Adding licensing server config"
|
||||||
|
|
||||||
|
$ACTIVATION_OUTPUT = Start-Process -FilePath "$Env:UNITY_PATH\Editor\Data\Resources\Licensing\Client\Unity.Licensing.Client.exe" `
|
||||||
|
-ArgumentList "--acquire-floating" `
|
||||||
|
-NoNewWindow `
|
||||||
|
-PassThru `
|
||||||
|
-Wait `
|
||||||
|
-RedirectStandardOutput "license.txt"
|
||||||
|
|
||||||
|
$PARSEDFILE = (Get-Content "license.txt" | Select-String -AllMatches -Pattern '\".*?\"' | ForEach-Object { $_.Matches.Value }) -replace '"'
|
||||||
|
|
||||||
|
$env:FLOATING_LICENSE = $PARSEDFILE[1]
|
||||||
|
$FLOATING_LICENSE_TIMEOUT = $PARSEDFILE[3]
|
||||||
|
|
||||||
|
Write-Output "Acquired floating license: ""$env:FLOATING_LICENSE"" with timeout $FLOATING_LICENSE_TIMEOUT"
|
||||||
|
# Store the exit code from the verify command
|
||||||
|
$ACTIVATION_EXIT_CODE = $ACTIVATION_OUTPUT.ExitCode
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#
|
#
|
||||||
|
|||||||
11
dist/platforms/windows/return_license.ps1
vendored
11
dist/platforms/windows/return_license.ps1
vendored
@@ -6,7 +6,16 @@ Write-Output "# Return License #"
|
|||||||
Write-Output "###########################"
|
Write-Output "###########################"
|
||||||
Write-Output ""
|
Write-Output ""
|
||||||
|
|
||||||
if (($null -ne ${env:UNITY_SERIAL}) -and ($null -ne ${env:UNITY_EMAIL}) -and ($null -ne ${env:UNITY_PASSWORD}))
|
if (($null -ne ${env:UNITY_LICENSING_SERVER}))
|
||||||
|
{
|
||||||
|
Write-Output "Returning floating license: ""$env:FLOATING_LICENSE"""
|
||||||
|
Start-Process -FilePath "$Env:UNITY_PATH\Editor\Data\Resources\Licensing\Client\Unity.Licensing.Client.exe" `
|
||||||
|
-ArgumentList "--return-floating ""$env:FLOATING_LICENSE"" " `
|
||||||
|
-NoNewWindow `
|
||||||
|
-Wait
|
||||||
|
}
|
||||||
|
|
||||||
|
elseif (($null -ne ${env:UNITY_SERIAL}) -and ($null -ne ${env:UNITY_EMAIL}) -and ($null -ne ${env:UNITY_PASSWORD}))
|
||||||
{
|
{
|
||||||
#
|
#
|
||||||
# SERIAL LICENSE MODE
|
# SERIAL LICENSE MODE
|
||||||
|
|||||||
10
dist/platforms/windows/set_gitcredential.ps1
vendored
10
dist/platforms/windows/set_gitcredential.ps1
vendored
@@ -5,12 +5,12 @@ else {
|
|||||||
Write-Host "GIT_PRIVATE_TOKEN is set configuring git credentials"
|
Write-Host "GIT_PRIVATE_TOKEN is set configuring git credentials"
|
||||||
|
|
||||||
git config --global credential.helper store
|
git config --global credential.helper store
|
||||||
git config --global --replace-all "url.https://token:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
|
git config --global --replace-all url."https://token:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
|
||||||
git config --global --add "url.https://token:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "git@github.com"
|
git config --global --add url."https://token:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "git@github.com"
|
||||||
git config --global --add "url.https://token:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "https://github.com/"
|
git config --global --add url."https://token:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "https://github.com/"
|
||||||
|
|
||||||
git config --global "url.https://ssh:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
|
git config --global url."https://ssh:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
|
||||||
git config --global "url.https://git:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "git@github.com:"
|
git config --global url."https://git:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "git@github.com:"
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Host "---------- git config --list -------------"
|
Write-Host "---------- git config --list -------------"
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ class BuildParameters {
|
|||||||
public buildMethod!: string;
|
public buildMethod!: string;
|
||||||
public buildVersion!: string;
|
public buildVersion!: string;
|
||||||
public manualExit!: boolean;
|
public manualExit!: boolean;
|
||||||
|
public enableGpu!: boolean;
|
||||||
public androidVersionCode!: string;
|
public androidVersionCode!: string;
|
||||||
public androidKeystoreName!: string;
|
public androidKeystoreName!: string;
|
||||||
public androidKeystoreBase64!: string;
|
public androidKeystoreBase64!: string;
|
||||||
@@ -157,6 +158,7 @@ class BuildParameters {
|
|||||||
buildMethod: Input.buildMethod,
|
buildMethod: Input.buildMethod,
|
||||||
buildVersion,
|
buildVersion,
|
||||||
manualExit: Input.manualExit,
|
manualExit: Input.manualExit,
|
||||||
|
enableGpu: Input.enableGpu,
|
||||||
androidVersionCode,
|
androidVersionCode,
|
||||||
androidKeystoreName: Input.androidKeystoreName,
|
androidKeystoreName: Input.androidKeystoreName,
|
||||||
androidKeystoreBase64: Input.androidKeystoreBase64,
|
androidKeystoreBase64: Input.androidKeystoreBase64,
|
||||||
|
|||||||
@@ -113,6 +113,7 @@ class Docker {
|
|||||||
--volume "C:/ProgramData/Microsoft/VisualStudio":"C:/ProgramData/Microsoft/VisualStudio" \
|
--volume "C:/ProgramData/Microsoft/VisualStudio":"C:/ProgramData/Microsoft/VisualStudio" \
|
||||||
--volume "${actionFolder}/default-build-script":"c:/UnityBuilderAction" \
|
--volume "${actionFolder}/default-build-script":"c:/UnityBuilderAction" \
|
||||||
--volume "${actionFolder}/platforms/windows":"c:/steps" \
|
--volume "${actionFolder}/platforms/windows":"c:/steps" \
|
||||||
|
--volume "${actionFolder}/unity-config":"C:/ProgramData/Unity/config" \
|
||||||
--volume "${actionFolder}/BlankProject":"c:/BlankProject" \
|
--volume "${actionFolder}/BlankProject":"c:/BlankProject" \
|
||||||
--cpus=${dockerCpuLimit} \
|
--cpus=${dockerCpuLimit} \
|
||||||
--memory=${dockerMemoryLimit} \
|
--memory=${dockerMemoryLimit} \
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ class ImageEnvironmentFactory {
|
|||||||
{ name: 'BUILD_FILE', value: parameters.buildFile },
|
{ name: 'BUILD_FILE', value: parameters.buildFile },
|
||||||
{ name: 'BUILD_METHOD', value: parameters.buildMethod },
|
{ name: 'BUILD_METHOD', value: parameters.buildMethod },
|
||||||
{ name: 'MANUAL_EXIT', value: parameters.manualExit },
|
{ name: 'MANUAL_EXIT', value: parameters.manualExit },
|
||||||
|
{ name: 'ENABLE_GPU', value: parameters.enableGpu },
|
||||||
{ name: 'VERSION', value: parameters.buildVersion },
|
{ name: 'VERSION', value: parameters.buildVersion },
|
||||||
{ name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode },
|
{ name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode },
|
||||||
{ name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName },
|
{ name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName },
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import ImageTag from './image-tag';
|
|||||||
|
|
||||||
describe('ImageTag', () => {
|
describe('ImageTag', () => {
|
||||||
const testImageParameters = {
|
const testImageParameters = {
|
||||||
editorVersion: '2099.9.f9f9',
|
editorVersion: '2099.9.9f9',
|
||||||
targetPlatform: 'Test',
|
targetPlatform: 'Test',
|
||||||
builderPlatform: '',
|
builderPlatform: '',
|
||||||
containerRegistryRepository: 'unityci/editor',
|
containerRegistryRepository: 'unityci/editor',
|
||||||
@@ -27,7 +27,7 @@ describe('ImageTag', () => {
|
|||||||
expect(image.builderPlatform).toStrictEqual(testImageParameters.builderPlatform);
|
expect(image.builderPlatform).toStrictEqual(testImageParameters.builderPlatform);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.each(['2000.0.0f0', '2011.1.11f1'])('accepts %p version format', (version) => {
|
test.each(['2000.0.0f0', '2011.1.11f1', '6000.0.0f1'])('accepts %p version format', (version) => {
|
||||||
expect(
|
expect(
|
||||||
() =>
|
() =>
|
||||||
new ImageTag({
|
new ImageTag({
|
||||||
@@ -50,23 +50,23 @@ describe('ImageTag', () => {
|
|||||||
describe('toString', () => {
|
describe('toString', () => {
|
||||||
it('returns the correct version', () => {
|
it('returns the correct version', () => {
|
||||||
const image = new ImageTag({
|
const image = new ImageTag({
|
||||||
editorVersion: '2099.1.1111',
|
editorVersion: '2099.1.1111f1',
|
||||||
targetPlatform: testImageParameters.targetPlatform,
|
targetPlatform: testImageParameters.targetPlatform,
|
||||||
containerRegistryRepository: 'unityci/editor',
|
containerRegistryRepository: 'unityci/editor',
|
||||||
containerRegistryImageVersion: '3',
|
containerRegistryImageVersion: '3',
|
||||||
});
|
});
|
||||||
switch (process.platform) {
|
switch (process.platform) {
|
||||||
case 'win32':
|
case 'win32':
|
||||||
expect(image.toString()).toStrictEqual(`${defaults.image}:windows-2099.1.1111-3`);
|
expect(image.toString()).toStrictEqual(`${defaults.image}:windows-2099.1.1111f1-3`);
|
||||||
break;
|
break;
|
||||||
case 'linux':
|
case 'linux':
|
||||||
expect(image.toString()).toStrictEqual(`${defaults.image}:ubuntu-2099.1.1111-3`);
|
expect(image.toString()).toStrictEqual(`${defaults.image}:ubuntu-2099.1.1111f1-3`);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
it('returns customImage if given', () => {
|
it('returns customImage if given', () => {
|
||||||
const image = new ImageTag({
|
const image = new ImageTag({
|
||||||
editorVersion: '2099.1.1111',
|
editorVersion: '2099.1.1111f1',
|
||||||
targetPlatform: testImageParameters.targetPlatform,
|
targetPlatform: testImageParameters.targetPlatform,
|
||||||
customImage: `${defaults.image}:2099.1.1111@347598437689743986`,
|
customImage: `${defaults.image}:2099.1.1111@347598437689743986`,
|
||||||
containerRegistryRepository: 'unityci/editor',
|
containerRegistryRepository: 'unityci/editor',
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ class ImageTag {
|
|||||||
buildPlatform,
|
buildPlatform,
|
||||||
containerRegistryRepository,
|
containerRegistryRepository,
|
||||||
containerRegistryImageVersion,
|
containerRegistryImageVersion,
|
||||||
|
providerStrategy,
|
||||||
} = imageProperties;
|
} = imageProperties;
|
||||||
|
|
||||||
if (!ImageTag.versionPattern.test(editorVersion)) {
|
if (!ImageTag.versionPattern.test(editorVersion)) {
|
||||||
@@ -31,13 +32,17 @@ class ImageTag {
|
|||||||
this.repository = containerRegistryRepository;
|
this.repository = containerRegistryRepository;
|
||||||
this.editorVersion = editorVersion;
|
this.editorVersion = editorVersion;
|
||||||
this.targetPlatform = targetPlatform;
|
this.targetPlatform = targetPlatform;
|
||||||
this.builderPlatform = ImageTag.getTargetPlatformToTargetPlatformSuffixMap(targetPlatform, editorVersion);
|
this.builderPlatform = ImageTag.getTargetPlatformToTargetPlatformSuffixMap(
|
||||||
|
targetPlatform,
|
||||||
|
editorVersion,
|
||||||
|
providerStrategy,
|
||||||
|
);
|
||||||
this.imagePlatformPrefix = ImageTag.getImagePlatformPrefixes(buildPlatform);
|
this.imagePlatformPrefix = ImageTag.getImagePlatformPrefixes(buildPlatform);
|
||||||
this.imageRollingVersion = Number(containerRegistryImageVersion); // Will automatically roll to the latest non-breaking version.
|
this.imageRollingVersion = Number(containerRegistryImageVersion); // Will automatically roll to the latest non-breaking version.
|
||||||
}
|
}
|
||||||
|
|
||||||
static get versionPattern(): RegExp {
|
static get versionPattern(): RegExp {
|
||||||
return /^(20\d{2}\.\d\.\w{3,4}|3)$/;
|
return /^\d+\.\d+\.\d+[a-z]\d+$/;
|
||||||
}
|
}
|
||||||
|
|
||||||
static get targetPlatformSuffixes() {
|
static get targetPlatformSuffixes() {
|
||||||
@@ -72,7 +77,11 @@ class ImageTag {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static getTargetPlatformToTargetPlatformSuffixMap(platform: string, version: string): string {
|
static getTargetPlatformToTargetPlatformSuffixMap(
|
||||||
|
platform: string,
|
||||||
|
version: string,
|
||||||
|
providerStrategy: string,
|
||||||
|
): string {
|
||||||
const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } =
|
const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } =
|
||||||
ImageTag.targetPlatformSuffixes;
|
ImageTag.targetPlatformSuffixes;
|
||||||
|
|
||||||
@@ -100,8 +109,12 @@ class ImageTag {
|
|||||||
return windows;
|
return windows;
|
||||||
case Platform.types.StandaloneLinux64: {
|
case Platform.types.StandaloneLinux64: {
|
||||||
// Unity versions before 2019.3 do not support il2cpp
|
// Unity versions before 2019.3 do not support il2cpp
|
||||||
if (process.env.USE_IL2CPP === 'true' && (major >= 2020 || (major === 2019 && minor >= 3))) {
|
if (major >= 2020 || (major === 2019 && minor >= 3)) {
|
||||||
return linuxIl2cpp;
|
if (providerStrategy === 'local') {
|
||||||
|
return linuxIl2cpp;
|
||||||
|
} else {
|
||||||
|
return process.env.USE_IL2CPP === 'true' ? linuxIl2cpp : linux;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return linux;
|
return linux;
|
||||||
|
|||||||
@@ -122,6 +122,24 @@ describe('Input', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('enableGpu', () => {
|
||||||
|
it('returns the default value', () => {
|
||||||
|
expect(Input.enableGpu).toStrictEqual(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns true when string true is passed', () => {
|
||||||
|
const spy = jest.spyOn(core, 'getInput').mockReturnValue('true');
|
||||||
|
expect(Input.enableGpu).toStrictEqual(true);
|
||||||
|
expect(spy).toHaveBeenCalledTimes(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns false when string false is passed', () => {
|
||||||
|
const spy = jest.spyOn(core, 'getInput').mockReturnValue('false');
|
||||||
|
expect(Input.enableGpu).toStrictEqual(false);
|
||||||
|
expect(spy).toHaveBeenCalledTimes(1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('versioningStrategy', () => {
|
describe('versioningStrategy', () => {
|
||||||
it('returns the default value', () => {
|
it('returns the default value', () => {
|
||||||
expect(Input.versioningStrategy).toStrictEqual('Semantic');
|
expect(Input.versioningStrategy).toStrictEqual('Semantic');
|
||||||
|
|||||||
@@ -133,6 +133,12 @@ class Input {
|
|||||||
return input === 'true';
|
return input === 'true';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static get enableGpu(): boolean {
|
||||||
|
const input = Input.getInput('enableGpu') ?? false;
|
||||||
|
|
||||||
|
return input === 'true';
|
||||||
|
}
|
||||||
|
|
||||||
static get customParameters(): string {
|
static get customParameters(): string {
|
||||||
return Input.getInput('customParameters') ?? '';
|
return Input.getInput('customParameters') ?? '';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,6 +168,7 @@ class SetupMac {
|
|||||||
process.env.UNITY_VERSION = buildParameters.editorVersion;
|
process.env.UNITY_VERSION = buildParameters.editorVersion;
|
||||||
process.env.UNITY_SERIAL = buildParameters.unitySerial;
|
process.env.UNITY_SERIAL = buildParameters.unitySerial;
|
||||||
process.env.UNITY_LICENSING_SERVER = buildParameters.unityLicensingServer;
|
process.env.UNITY_LICENSING_SERVER = buildParameters.unityLicensingServer;
|
||||||
|
process.env.SKIP_ACTIVATION = buildParameters.skipActivation;
|
||||||
process.env.PROJECT_PATH = buildParameters.projectPath;
|
process.env.PROJECT_PATH = buildParameters.projectPath;
|
||||||
process.env.BUILD_TARGET = buildParameters.targetPlatform;
|
process.env.BUILD_TARGET = buildParameters.targetPlatform;
|
||||||
process.env.BUILD_NAME = buildParameters.buildName;
|
process.env.BUILD_NAME = buildParameters.buildName;
|
||||||
@@ -188,6 +189,7 @@ class SetupMac {
|
|||||||
process.env.CUSTOM_PARAMETERS = buildParameters.customParameters;
|
process.env.CUSTOM_PARAMETERS = buildParameters.customParameters;
|
||||||
process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo;
|
process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo;
|
||||||
process.env.MANUAL_EXIT = buildParameters.manualExit.toString();
|
process.env.MANUAL_EXIT = buildParameters.manualExit.toString();
|
||||||
|
process.env.ENABLE_GPU = buildParameters.enableGpu.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,14 @@ import { BuildParameters } from '..';
|
|||||||
class ValidateWindows {
|
class ValidateWindows {
|
||||||
public static validate(buildParameters: BuildParameters) {
|
public static validate(buildParameters: BuildParameters) {
|
||||||
ValidateWindows.validateWindowsPlatformRequirements(buildParameters.targetPlatform);
|
ValidateWindows.validateWindowsPlatformRequirements(buildParameters.targetPlatform);
|
||||||
if (!(process.env.UNITY_EMAIL && process.env.UNITY_PASSWORD)) {
|
|
||||||
throw new Error(`Unity email and password must be set for Windows based builds to
|
const { unityLicensingServer } = buildParameters;
|
||||||
authenticate the license. Make sure to set them inside UNITY_EMAIL
|
const hasLicensingCredentials = process.env.UNITY_EMAIL && process.env.UNITY_PASSWORD;
|
||||||
|
const hasValidLicensingStrategy = hasLicensingCredentials || unityLicensingServer;
|
||||||
|
|
||||||
|
if (!hasValidLicensingStrategy) {
|
||||||
|
throw new Error(`Unity email and password or alternatively a Unity licensing server url must be set for
|
||||||
|
Windows based builds to authenticate the license. Make sure to set them inside UNITY_EMAIL
|
||||||
and UNITY_PASSWORD in Github Secrets and pass them into the environment.`);
|
and UNITY_PASSWORD in Github Secrets and pass them into the environment.`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,12 @@ describe('Unity Versioning', () => {
|
|||||||
m_EditorVersionWithRevision: 2021.3.4f1 (cb45f9cae8b7)`;
|
m_EditorVersionWithRevision: 2021.3.4f1 (cb45f9cae8b7)`;
|
||||||
expect(UnityVersioning.parse(projectVersionContents)).toBe('2021.3.4f1');
|
expect(UnityVersioning.parse(projectVersionContents)).toBe('2021.3.4f1');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('parses Unity 6000 and newer from ProjectVersion.txt', () => {
|
||||||
|
const projectVersionContents = `m_EditorVersion: 6000.0.0f1
|
||||||
|
m_EditorVersionWithRevision: 6000.0.0f1 (cb45f9cae8b7)`;
|
||||||
|
expect(UnityVersioning.parse(projectVersionContents)).toBe('6000.0.0f1');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('read', () => {
|
describe('read', () => {
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ import fs from 'node:fs';
|
|||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
|
|
||||||
export default class UnityVersioning {
|
export default class UnityVersioning {
|
||||||
static get versionPattern() {
|
|
||||||
return /20\d{2}\.\d\.\w{3,4}|3/;
|
|
||||||
}
|
|
||||||
|
|
||||||
static determineUnityVersion(projectPath: string, unityVersion: string) {
|
static determineUnityVersion(projectPath: string, unityVersion: string) {
|
||||||
if (unityVersion === 'auto') {
|
if (unityVersion === 'auto') {
|
||||||
return UnityVersioning.read(projectPath);
|
return UnityVersioning.read(projectPath);
|
||||||
@@ -24,11 +20,13 @@ export default class UnityVersioning {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static parse(projectVersionTxt: string) {
|
static parse(projectVersionTxt: string) {
|
||||||
const matches = projectVersionTxt.match(UnityVersioning.versionPattern);
|
const versionRegex = /m_EditorVersion: (\d+\.\d+\.\d+[A-Za-z]?\d+)/;
|
||||||
if (!matches || matches.length === 0) {
|
const matches = projectVersionTxt.match(versionRegex);
|
||||||
throw new Error(`Failed to parse version from "${projectVersionTxt}".`);
|
|
||||||
|
if (!matches || matches.length < 2) {
|
||||||
|
throw new Error(`Failed to extract version from "${projectVersionTxt}".`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return matches[0];
|
return matches[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -207,7 +207,21 @@ export default class Versioning {
|
|||||||
* identifies the current commit.
|
* identifies the current commit.
|
||||||
*/
|
*/
|
||||||
static async getVersionDescription() {
|
static async getVersionDescription() {
|
||||||
return this.git(['describe', '--long', '--tags', '--always', 'HEAD']);
|
const versionTags = (await this.git(['tag', '--list', '--merged', 'HEAD', '--sort=-creatordate']))
|
||||||
|
.split('\n')
|
||||||
|
.filter((tag) => new RegExp(this.grepCompatibleInputVersionRegex).test(tag));
|
||||||
|
|
||||||
|
if (versionTags.length === 0) {
|
||||||
|
core.warning('No valid version tags found. Using fallback description.');
|
||||||
|
|
||||||
|
return this.git(['describe', '--long', '--tags', '--always', 'HEAD']);
|
||||||
|
}
|
||||||
|
|
||||||
|
const latestVersionTag = versionTags[0];
|
||||||
|
const commitsCount = (await this.git(['rev-list', `${latestVersionTag}..HEAD`, '--count'])).trim();
|
||||||
|
const commitHash = (await this.git(['rev-parse', '--short', 'HEAD'])).trim();
|
||||||
|
|
||||||
|
return `${latestVersionTag}-${commitsCount}-g${commitHash}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ PlayerSettings:
|
|||||||
Android: com.GameCI.TestProject
|
Android: com.GameCI.TestProject
|
||||||
Standalone: com.GameCI.TestProject
|
Standalone: com.GameCI.TestProject
|
||||||
iPhone: com.GameCI.TestProject
|
iPhone: com.GameCI.TestProject
|
||||||
|
tvOS: com.GameCI.TestProject
|
||||||
buildNumber:
|
buildNumber:
|
||||||
Standalone: 0
|
Standalone: 0
|
||||||
iPhone: 0
|
iPhone: 0
|
||||||
@@ -462,6 +463,43 @@ PlayerSettings:
|
|||||||
m_Height: 1024
|
m_Height: 1024
|
||||||
m_Kind: 4
|
m_Kind: 4
|
||||||
m_SubKind: App Store
|
m_SubKind: App Store
|
||||||
|
- m_BuildTarget: tvOS
|
||||||
|
m_Icons:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 1280
|
||||||
|
m_Height: 768
|
||||||
|
m_Kind: 0
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 800
|
||||||
|
m_Height: 480
|
||||||
|
m_Kind: 0
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 400
|
||||||
|
m_Height: 240
|
||||||
|
m_Kind: 0
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 4640
|
||||||
|
m_Height: 1440
|
||||||
|
m_Kind: 1
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 2320
|
||||||
|
m_Height: 720
|
||||||
|
m_Kind: 1
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 3840
|
||||||
|
m_Height: 1440
|
||||||
|
m_Kind: 1
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 1920
|
||||||
|
m_Height: 720
|
||||||
|
m_Kind: 1
|
||||||
|
m_SubKind:
|
||||||
m_BuildTargetBatching:
|
m_BuildTargetBatching:
|
||||||
- m_BuildTarget: Standalone
|
- m_BuildTarget: Standalone
|
||||||
m_StaticBatching: 1
|
m_StaticBatching: 1
|
||||||
@@ -806,6 +844,8 @@ PlayerSettings:
|
|||||||
platformArchitecture: {}
|
platformArchitecture: {}
|
||||||
scriptingBackend:
|
scriptingBackend:
|
||||||
Android: 1
|
Android: 1
|
||||||
|
Server: 0
|
||||||
|
Standalone: 0
|
||||||
il2cppCompilerConfiguration: {}
|
il2cppCompilerConfiguration: {}
|
||||||
managedStrippingLevel: {}
|
managedStrippingLevel: {}
|
||||||
incrementalIl2cppBuild: {}
|
incrementalIl2cppBuild: {}
|
||||||
@@ -821,8 +861,8 @@ PlayerSettings:
|
|||||||
apiCompatibilityLevelPerPlatform: {}
|
apiCompatibilityLevelPerPlatform: {}
|
||||||
m_RenderingPath: 1
|
m_RenderingPath: 1
|
||||||
m_MobileRenderingPath: 1
|
m_MobileRenderingPath: 1
|
||||||
metroPackageName: Template_3D
|
metroPackageName: Template3D
|
||||||
metroPackageVersion:
|
metroPackageVersion: 1.0.0.0
|
||||||
metroCertificatePath:
|
metroCertificatePath:
|
||||||
metroCertificatePassword:
|
metroCertificatePassword:
|
||||||
metroCertificateSubject:
|
metroCertificateSubject:
|
||||||
@@ -830,7 +870,7 @@ PlayerSettings:
|
|||||||
metroCertificateNotAfter: 0000000000000000
|
metroCertificateNotAfter: 0000000000000000
|
||||||
metroApplicationDescription: Template_3D
|
metroApplicationDescription: Template_3D
|
||||||
wsaImages: {}
|
wsaImages: {}
|
||||||
metroTileShortName:
|
metroTileShortName: TestProject
|
||||||
metroTileShowName: 0
|
metroTileShowName: 0
|
||||||
metroMediumTileShowName: 0
|
metroMediumTileShowName: 0
|
||||||
metroLargeTileShowName: 0
|
metroLargeTileShowName: 0
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ PlayerSettings:
|
|||||||
Android: com.GameCI.TestProject
|
Android: com.GameCI.TestProject
|
||||||
Standalone: com.GameCI.TestProject
|
Standalone: com.GameCI.TestProject
|
||||||
iPhone: com.GameCI.TestProject
|
iPhone: com.GameCI.TestProject
|
||||||
|
tvOS: com.GameCI.TestProject
|
||||||
buildNumber:
|
buildNumber:
|
||||||
Standalone: 0
|
Standalone: 0
|
||||||
iPhone: 0
|
iPhone: 0
|
||||||
@@ -167,7 +168,7 @@ PlayerSettings:
|
|||||||
AndroidMinSdkVersion: 22
|
AndroidMinSdkVersion: 22
|
||||||
AndroidTargetSdkVersion: 33
|
AndroidTargetSdkVersion: 33
|
||||||
AndroidPreferredInstallLocation: 1
|
AndroidPreferredInstallLocation: 1
|
||||||
aotOptions:
|
aotOptions:
|
||||||
stripEngineCode: 1
|
stripEngineCode: 1
|
||||||
iPhoneStrippingLevel: 0
|
iPhoneStrippingLevel: 0
|
||||||
iPhoneScriptCallOptimization: 0
|
iPhoneScriptCallOptimization: 0
|
||||||
@@ -207,7 +208,7 @@ PlayerSettings:
|
|||||||
rgba: 0
|
rgba: 0
|
||||||
iOSLaunchScreenFillPct: 100
|
iOSLaunchScreenFillPct: 100
|
||||||
iOSLaunchScreenSize: 100
|
iOSLaunchScreenSize: 100
|
||||||
iOSLaunchScreenCustomXibPath:
|
iOSLaunchScreenCustomXibPath:
|
||||||
iOSLaunchScreeniPadType: 0
|
iOSLaunchScreeniPadType: 0
|
||||||
iOSLaunchScreeniPadImage: {fileID: 0}
|
iOSLaunchScreeniPadImage: {fileID: 0}
|
||||||
iOSLaunchScreeniPadBackgroundColor:
|
iOSLaunchScreeniPadBackgroundColor:
|
||||||
@@ -215,9 +216,9 @@ PlayerSettings:
|
|||||||
rgba: 0
|
rgba: 0
|
||||||
iOSLaunchScreeniPadFillPct: 100
|
iOSLaunchScreeniPadFillPct: 100
|
||||||
iOSLaunchScreeniPadSize: 100
|
iOSLaunchScreeniPadSize: 100
|
||||||
iOSLaunchScreeniPadCustomXibPath:
|
iOSLaunchScreeniPadCustomXibPath:
|
||||||
iOSLaunchScreenCustomStoryboardPath:
|
iOSLaunchScreenCustomStoryboardPath:
|
||||||
iOSLaunchScreeniPadCustomStoryboardPath:
|
iOSLaunchScreeniPadCustomStoryboardPath:
|
||||||
iOSDeviceRequirements: []
|
iOSDeviceRequirements: []
|
||||||
iOSURLSchemes: []
|
iOSURLSchemes: []
|
||||||
macOSURLSchemes: []
|
macOSURLSchemes: []
|
||||||
@@ -227,9 +228,9 @@ PlayerSettings:
|
|||||||
metalAPIValidation: 1
|
metalAPIValidation: 1
|
||||||
iOSRenderExtraFrameOnPause: 0
|
iOSRenderExtraFrameOnPause: 0
|
||||||
iosCopyPluginsCodeInsteadOfSymlink: 0
|
iosCopyPluginsCodeInsteadOfSymlink: 0
|
||||||
appleDeveloperTeamID:
|
appleDeveloperTeamID:
|
||||||
iOSManualSigningProvisioningProfileID:
|
iOSManualSigningProvisioningProfileID:
|
||||||
tvOSManualSigningProvisioningProfileID:
|
tvOSManualSigningProvisioningProfileID:
|
||||||
iOSManualSigningProvisioningProfileType: 0
|
iOSManualSigningProvisioningProfileType: 0
|
||||||
tvOSManualSigningProvisioningProfileType: 0
|
tvOSManualSigningProvisioningProfileType: 0
|
||||||
appleEnableAutomaticSigning: 0
|
appleEnableAutomaticSigning: 0
|
||||||
@@ -251,8 +252,8 @@ PlayerSettings:
|
|||||||
AndroidTargetDevices: 0
|
AndroidTargetDevices: 0
|
||||||
AndroidSplashScreenScale: 0
|
AndroidSplashScreenScale: 0
|
||||||
androidSplashScreen: {fileID: 0}
|
androidSplashScreen: {fileID: 0}
|
||||||
AndroidKeystoreName:
|
AndroidKeystoreName:
|
||||||
AndroidKeyaliasName:
|
AndroidKeyaliasName:
|
||||||
AndroidBuildApkPerCpuArchitecture: 0
|
AndroidBuildApkPerCpuArchitecture: 0
|
||||||
AndroidTVCompatibility: 0
|
AndroidTVCompatibility: 0
|
||||||
AndroidIsGame: 1
|
AndroidIsGame: 1
|
||||||
@@ -279,92 +280,92 @@ PlayerSettings:
|
|||||||
m_Width: 432
|
m_Width: 432
|
||||||
m_Height: 432
|
m_Height: 432
|
||||||
m_Kind: 2
|
m_Kind: 2
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 324
|
m_Width: 324
|
||||||
m_Height: 324
|
m_Height: 324
|
||||||
m_Kind: 2
|
m_Kind: 2
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 216
|
m_Width: 216
|
||||||
m_Height: 216
|
m_Height: 216
|
||||||
m_Kind: 2
|
m_Kind: 2
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 162
|
m_Width: 162
|
||||||
m_Height: 162
|
m_Height: 162
|
||||||
m_Kind: 2
|
m_Kind: 2
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 108
|
m_Width: 108
|
||||||
m_Height: 108
|
m_Height: 108
|
||||||
m_Kind: 2
|
m_Kind: 2
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 81
|
m_Width: 81
|
||||||
m_Height: 81
|
m_Height: 81
|
||||||
m_Kind: 2
|
m_Kind: 2
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 192
|
m_Width: 192
|
||||||
m_Height: 192
|
m_Height: 192
|
||||||
m_Kind: 1
|
m_Kind: 1
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 144
|
m_Width: 144
|
||||||
m_Height: 144
|
m_Height: 144
|
||||||
m_Kind: 1
|
m_Kind: 1
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 96
|
m_Width: 96
|
||||||
m_Height: 96
|
m_Height: 96
|
||||||
m_Kind: 1
|
m_Kind: 1
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 72
|
m_Width: 72
|
||||||
m_Height: 72
|
m_Height: 72
|
||||||
m_Kind: 1
|
m_Kind: 1
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 48
|
m_Width: 48
|
||||||
m_Height: 48
|
m_Height: 48
|
||||||
m_Kind: 1
|
m_Kind: 1
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 36
|
m_Width: 36
|
||||||
m_Height: 36
|
m_Height: 36
|
||||||
m_Kind: 1
|
m_Kind: 1
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 192
|
m_Width: 192
|
||||||
m_Height: 192
|
m_Height: 192
|
||||||
m_Kind: 0
|
m_Kind: 0
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 144
|
m_Width: 144
|
||||||
m_Height: 144
|
m_Height: 144
|
||||||
m_Kind: 0
|
m_Kind: 0
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 96
|
m_Width: 96
|
||||||
m_Height: 96
|
m_Height: 96
|
||||||
m_Kind: 0
|
m_Kind: 0
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 72
|
m_Width: 72
|
||||||
m_Height: 72
|
m_Height: 72
|
||||||
m_Kind: 0
|
m_Kind: 0
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 48
|
m_Width: 48
|
||||||
m_Height: 48
|
m_Height: 48
|
||||||
m_Kind: 0
|
m_Kind: 0
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
m_Width: 36
|
m_Width: 36
|
||||||
m_Height: 36
|
m_Height: 36
|
||||||
m_Kind: 0
|
m_Kind: 0
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_BuildTarget: iPhone
|
- m_BuildTarget: iPhone
|
||||||
m_Icons:
|
m_Icons:
|
||||||
- m_Textures: []
|
- m_Textures: []
|
||||||
@@ -462,6 +463,43 @@ PlayerSettings:
|
|||||||
m_Height: 1024
|
m_Height: 1024
|
||||||
m_Kind: 4
|
m_Kind: 4
|
||||||
m_SubKind: App Store
|
m_SubKind: App Store
|
||||||
|
- m_BuildTarget: tvOS
|
||||||
|
m_Icons:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 1280
|
||||||
|
m_Height: 768
|
||||||
|
m_Kind: 0
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 800
|
||||||
|
m_Height: 480
|
||||||
|
m_Kind: 0
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 400
|
||||||
|
m_Height: 240
|
||||||
|
m_Kind: 0
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 4640
|
||||||
|
m_Height: 1440
|
||||||
|
m_Kind: 1
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 2320
|
||||||
|
m_Height: 720
|
||||||
|
m_Kind: 1
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 3840
|
||||||
|
m_Height: 1440
|
||||||
|
m_Kind: 1
|
||||||
|
m_SubKind:
|
||||||
|
- m_Textures: []
|
||||||
|
m_Width: 1920
|
||||||
|
m_Height: 720
|
||||||
|
m_Kind: 1
|
||||||
|
m_SubKind:
|
||||||
m_BuildTargetBatching:
|
m_BuildTargetBatching:
|
||||||
- m_BuildTarget: Standalone
|
- m_BuildTarget: Standalone
|
||||||
m_StaticBatching: 1
|
m_StaticBatching: 1
|
||||||
@@ -561,12 +599,12 @@ PlayerSettings:
|
|||||||
enableInternalProfiler: 0
|
enableInternalProfiler: 0
|
||||||
logObjCUncaughtExceptions: 1
|
logObjCUncaughtExceptions: 1
|
||||||
enableCrashReportAPI: 0
|
enableCrashReportAPI: 0
|
||||||
cameraUsageDescription:
|
cameraUsageDescription:
|
||||||
locationUsageDescription:
|
locationUsageDescription:
|
||||||
microphoneUsageDescription:
|
microphoneUsageDescription:
|
||||||
bluetoothUsageDescription:
|
bluetoothUsageDescription:
|
||||||
switchNMETAOverride:
|
switchNMETAOverride:
|
||||||
switchNetLibKey:
|
switchNetLibKey:
|
||||||
switchSocketMemoryPoolSize: 6144
|
switchSocketMemoryPoolSize: 6144
|
||||||
switchSocketAllocatorPoolSize: 128
|
switchSocketAllocatorPoolSize: 128
|
||||||
switchSocketConcurrencyLimit: 14
|
switchSocketConcurrencyLimit: 14
|
||||||
@@ -575,39 +613,39 @@ PlayerSettings:
|
|||||||
switchUseGOLDLinker: 0
|
switchUseGOLDLinker: 0
|
||||||
switchLTOSetting: 0
|
switchLTOSetting: 0
|
||||||
switchApplicationID: 0x01004b9000490000
|
switchApplicationID: 0x01004b9000490000
|
||||||
switchNSODependencies:
|
switchNSODependencies:
|
||||||
switchTitleNames_0:
|
switchTitleNames_0:
|
||||||
switchTitleNames_1:
|
switchTitleNames_1:
|
||||||
switchTitleNames_2:
|
switchTitleNames_2:
|
||||||
switchTitleNames_3:
|
switchTitleNames_3:
|
||||||
switchTitleNames_4:
|
switchTitleNames_4:
|
||||||
switchTitleNames_5:
|
switchTitleNames_5:
|
||||||
switchTitleNames_6:
|
switchTitleNames_6:
|
||||||
switchTitleNames_7:
|
switchTitleNames_7:
|
||||||
switchTitleNames_8:
|
switchTitleNames_8:
|
||||||
switchTitleNames_9:
|
switchTitleNames_9:
|
||||||
switchTitleNames_10:
|
switchTitleNames_10:
|
||||||
switchTitleNames_11:
|
switchTitleNames_11:
|
||||||
switchTitleNames_12:
|
switchTitleNames_12:
|
||||||
switchTitleNames_13:
|
switchTitleNames_13:
|
||||||
switchTitleNames_14:
|
switchTitleNames_14:
|
||||||
switchTitleNames_15:
|
switchTitleNames_15:
|
||||||
switchPublisherNames_0:
|
switchPublisherNames_0:
|
||||||
switchPublisherNames_1:
|
switchPublisherNames_1:
|
||||||
switchPublisherNames_2:
|
switchPublisherNames_2:
|
||||||
switchPublisherNames_3:
|
switchPublisherNames_3:
|
||||||
switchPublisherNames_4:
|
switchPublisherNames_4:
|
||||||
switchPublisherNames_5:
|
switchPublisherNames_5:
|
||||||
switchPublisherNames_6:
|
switchPublisherNames_6:
|
||||||
switchPublisherNames_7:
|
switchPublisherNames_7:
|
||||||
switchPublisherNames_8:
|
switchPublisherNames_8:
|
||||||
switchPublisherNames_9:
|
switchPublisherNames_9:
|
||||||
switchPublisherNames_10:
|
switchPublisherNames_10:
|
||||||
switchPublisherNames_11:
|
switchPublisherNames_11:
|
||||||
switchPublisherNames_12:
|
switchPublisherNames_12:
|
||||||
switchPublisherNames_13:
|
switchPublisherNames_13:
|
||||||
switchPublisherNames_14:
|
switchPublisherNames_14:
|
||||||
switchPublisherNames_15:
|
switchPublisherNames_15:
|
||||||
switchIcons_0: {fileID: 0}
|
switchIcons_0: {fileID: 0}
|
||||||
switchIcons_1: {fileID: 0}
|
switchIcons_1: {fileID: 0}
|
||||||
switchIcons_2: {fileID: 0}
|
switchIcons_2: {fileID: 0}
|
||||||
@@ -640,11 +678,11 @@ PlayerSettings:
|
|||||||
switchSmallIcons_13: {fileID: 0}
|
switchSmallIcons_13: {fileID: 0}
|
||||||
switchSmallIcons_14: {fileID: 0}
|
switchSmallIcons_14: {fileID: 0}
|
||||||
switchSmallIcons_15: {fileID: 0}
|
switchSmallIcons_15: {fileID: 0}
|
||||||
switchManualHTML:
|
switchManualHTML:
|
||||||
switchAccessibleURLs:
|
switchAccessibleURLs:
|
||||||
switchLegalInformation:
|
switchLegalInformation:
|
||||||
switchMainThreadStackSize: 1048576
|
switchMainThreadStackSize: 1048576
|
||||||
switchPresenceGroupId:
|
switchPresenceGroupId:
|
||||||
switchLogoHandling: 0
|
switchLogoHandling: 0
|
||||||
switchReleaseVersion: 0
|
switchReleaseVersion: 0
|
||||||
switchDisplayVersion: 1.0.0
|
switchDisplayVersion: 1.0.0
|
||||||
@@ -652,7 +690,7 @@ PlayerSettings:
|
|||||||
switchTouchScreenUsage: 0
|
switchTouchScreenUsage: 0
|
||||||
switchSupportedLanguagesMask: 0
|
switchSupportedLanguagesMask: 0
|
||||||
switchLogoType: 0
|
switchLogoType: 0
|
||||||
switchApplicationErrorCodeCategory:
|
switchApplicationErrorCodeCategory:
|
||||||
switchUserAccountSaveDataSize: 0
|
switchUserAccountSaveDataSize: 0
|
||||||
switchUserAccountSaveDataJournalSize: 0
|
switchUserAccountSaveDataJournalSize: 0
|
||||||
switchApplicationAttribute: 0
|
switchApplicationAttribute: 0
|
||||||
@@ -672,14 +710,14 @@ PlayerSettings:
|
|||||||
switchRatingsInt_10: 0
|
switchRatingsInt_10: 0
|
||||||
switchRatingsInt_11: 0
|
switchRatingsInt_11: 0
|
||||||
switchRatingsInt_12: 0
|
switchRatingsInt_12: 0
|
||||||
switchLocalCommunicationIds_0:
|
switchLocalCommunicationIds_0:
|
||||||
switchLocalCommunicationIds_1:
|
switchLocalCommunicationIds_1:
|
||||||
switchLocalCommunicationIds_2:
|
switchLocalCommunicationIds_2:
|
||||||
switchLocalCommunicationIds_3:
|
switchLocalCommunicationIds_3:
|
||||||
switchLocalCommunicationIds_4:
|
switchLocalCommunicationIds_4:
|
||||||
switchLocalCommunicationIds_5:
|
switchLocalCommunicationIds_5:
|
||||||
switchLocalCommunicationIds_6:
|
switchLocalCommunicationIds_6:
|
||||||
switchLocalCommunicationIds_7:
|
switchLocalCommunicationIds_7:
|
||||||
switchParentalControl: 0
|
switchParentalControl: 0
|
||||||
switchAllowsScreenshot: 1
|
switchAllowsScreenshot: 1
|
||||||
switchAllowsVideoCapturing: 1
|
switchAllowsVideoCapturing: 1
|
||||||
@@ -708,35 +746,35 @@ PlayerSettings:
|
|||||||
switchMicroSleepForYieldTime: 25
|
switchMicroSleepForYieldTime: 25
|
||||||
switchRamDiskSpaceSize: 12
|
switchRamDiskSpaceSize: 12
|
||||||
ps4NPAgeRating: 12
|
ps4NPAgeRating: 12
|
||||||
ps4NPTitleSecret:
|
ps4NPTitleSecret:
|
||||||
ps4NPTrophyPackPath:
|
ps4NPTrophyPackPath:
|
||||||
ps4ParentalLevel: 11
|
ps4ParentalLevel: 11
|
||||||
ps4ContentID: ED1633-NPXX51362_00-0000000000000000
|
ps4ContentID: ED1633-NPXX51362_00-0000000000000000
|
||||||
ps4Category: 0
|
ps4Category: 0
|
||||||
ps4MasterVersion: 01.00
|
ps4MasterVersion: 01.00
|
||||||
ps4AppVersion: 01.00
|
ps4AppVersion: 01.00
|
||||||
ps4AppType: 0
|
ps4AppType: 0
|
||||||
ps4ParamSfxPath:
|
ps4ParamSfxPath:
|
||||||
ps4VideoOutPixelFormat: 0
|
ps4VideoOutPixelFormat: 0
|
||||||
ps4VideoOutInitialWidth: 1920
|
ps4VideoOutInitialWidth: 1920
|
||||||
ps4VideoOutBaseModeInitialWidth: 1920
|
ps4VideoOutBaseModeInitialWidth: 1920
|
||||||
ps4VideoOutReprojectionRate: 60
|
ps4VideoOutReprojectionRate: 60
|
||||||
ps4PronunciationXMLPath:
|
ps4PronunciationXMLPath:
|
||||||
ps4PronunciationSIGPath:
|
ps4PronunciationSIGPath:
|
||||||
ps4BackgroundImagePath:
|
ps4BackgroundImagePath:
|
||||||
ps4StartupImagePath:
|
ps4StartupImagePath:
|
||||||
ps4StartupImagesFolder:
|
ps4StartupImagesFolder:
|
||||||
ps4IconImagesFolder:
|
ps4IconImagesFolder:
|
||||||
ps4SaveDataImagePath:
|
ps4SaveDataImagePath:
|
||||||
ps4SdkOverride:
|
ps4SdkOverride:
|
||||||
ps4BGMPath:
|
ps4BGMPath:
|
||||||
ps4ShareFilePath:
|
ps4ShareFilePath:
|
||||||
ps4ShareOverlayImagePath:
|
ps4ShareOverlayImagePath:
|
||||||
ps4PrivacyGuardImagePath:
|
ps4PrivacyGuardImagePath:
|
||||||
ps4ExtraSceSysFile:
|
ps4ExtraSceSysFile:
|
||||||
ps4NPtitleDatPath:
|
ps4NPtitleDatPath:
|
||||||
ps4RemotePlayKeyAssignment: -1
|
ps4RemotePlayKeyAssignment: -1
|
||||||
ps4RemotePlayKeyMappingDir:
|
ps4RemotePlayKeyMappingDir:
|
||||||
ps4PlayTogetherPlayerCount: 0
|
ps4PlayTogetherPlayerCount: 0
|
||||||
ps4EnterButtonAssignment: 1
|
ps4EnterButtonAssignment: 1
|
||||||
ps4ApplicationParam1: 0
|
ps4ApplicationParam1: 0
|
||||||
@@ -764,9 +802,9 @@ PlayerSettings:
|
|||||||
ps4ScriptOptimizationLevel: 0
|
ps4ScriptOptimizationLevel: 0
|
||||||
ps4Audio3dVirtualSpeakerCount: 14
|
ps4Audio3dVirtualSpeakerCount: 14
|
||||||
ps4attribCpuUsage: 0
|
ps4attribCpuUsage: 0
|
||||||
ps4PatchPkgPath:
|
ps4PatchPkgPath:
|
||||||
ps4PatchLatestPkgPath:
|
ps4PatchLatestPkgPath:
|
||||||
ps4PatchChangeinfoPath:
|
ps4PatchChangeinfoPath:
|
||||||
ps4PatchDayOne: 0
|
ps4PatchDayOne: 0
|
||||||
ps4attribUserManagement: 0
|
ps4attribUserManagement: 0
|
||||||
ps4attribMoveSupport: 0
|
ps4attribMoveSupport: 0
|
||||||
@@ -781,18 +819,18 @@ PlayerSettings:
|
|||||||
ps4attribEyeToEyeDistanceSettingVR: 0
|
ps4attribEyeToEyeDistanceSettingVR: 0
|
||||||
ps4IncludedModules: []
|
ps4IncludedModules: []
|
||||||
ps4attribVROutputEnabled: 0
|
ps4attribVROutputEnabled: 0
|
||||||
monoEnv:
|
monoEnv:
|
||||||
splashScreenBackgroundSourceLandscape: {fileID: 0}
|
splashScreenBackgroundSourceLandscape: {fileID: 0}
|
||||||
splashScreenBackgroundSourcePortrait: {fileID: 0}
|
splashScreenBackgroundSourcePortrait: {fileID: 0}
|
||||||
blurSplashScreenBackground: 1
|
blurSplashScreenBackground: 1
|
||||||
spritePackerPolicy:
|
spritePackerPolicy:
|
||||||
webGLMemorySize: 16
|
webGLMemorySize: 16
|
||||||
webGLExceptionSupport: 1
|
webGLExceptionSupport: 1
|
||||||
webGLNameFilesAsHashes: 0
|
webGLNameFilesAsHashes: 0
|
||||||
webGLDataCaching: 1
|
webGLDataCaching: 1
|
||||||
webGLDebugSymbols: 0
|
webGLDebugSymbols: 0
|
||||||
webGLEmscriptenArgs:
|
webGLEmscriptenArgs:
|
||||||
webGLModulesDirectory:
|
webGLModulesDirectory:
|
||||||
webGLTemplate: APPLICATION:Default
|
webGLTemplate: APPLICATION:Default
|
||||||
webGLAnalyzeBuildSize: 0
|
webGLAnalyzeBuildSize: 0
|
||||||
webGLUseEmbeddedResources: 0
|
webGLUseEmbeddedResources: 0
|
||||||
@@ -806,6 +844,7 @@ PlayerSettings:
|
|||||||
platformArchitecture: {}
|
platformArchitecture: {}
|
||||||
scriptingBackend:
|
scriptingBackend:
|
||||||
Android: 1
|
Android: 1
|
||||||
|
Server: 1
|
||||||
Standalone: 1
|
Standalone: 1
|
||||||
il2cppCompilerConfiguration: {}
|
il2cppCompilerConfiguration: {}
|
||||||
managedStrippingLevel: {}
|
managedStrippingLevel: {}
|
||||||
@@ -814,7 +853,7 @@ PlayerSettings:
|
|||||||
allowUnsafeCode: 0
|
allowUnsafeCode: 0
|
||||||
useDeterministicCompilation: 1
|
useDeterministicCompilation: 1
|
||||||
enableRoslynAnalyzers: 1
|
enableRoslynAnalyzers: 1
|
||||||
additionalIl2CppArgs:
|
additionalIl2CppArgs:
|
||||||
scriptingRuntimeVersion: 1
|
scriptingRuntimeVersion: 1
|
||||||
gcIncremental: 1
|
gcIncremental: 1
|
||||||
assemblyVersionValidation: 1
|
assemblyVersionValidation: 1
|
||||||
@@ -822,16 +861,16 @@ PlayerSettings:
|
|||||||
apiCompatibilityLevelPerPlatform: {}
|
apiCompatibilityLevelPerPlatform: {}
|
||||||
m_RenderingPath: 1
|
m_RenderingPath: 1
|
||||||
m_MobileRenderingPath: 1
|
m_MobileRenderingPath: 1
|
||||||
metroPackageName: Template_3D
|
metroPackageName: Template3D
|
||||||
metroPackageVersion:
|
metroPackageVersion: 1.0.0.0
|
||||||
metroCertificatePath:
|
metroCertificatePath:
|
||||||
metroCertificatePassword:
|
metroCertificatePassword:
|
||||||
metroCertificateSubject:
|
metroCertificateSubject:
|
||||||
metroCertificateIssuer:
|
metroCertificateIssuer:
|
||||||
metroCertificateNotAfter: 0000000000000000
|
metroCertificateNotAfter: 0000000000000000
|
||||||
metroApplicationDescription: Template_3D
|
metroApplicationDescription: Template_3D
|
||||||
wsaImages: {}
|
wsaImages: {}
|
||||||
metroTileShortName:
|
metroTileShortName: TestProject
|
||||||
metroTileShowName: 0
|
metroTileShowName: 0
|
||||||
metroMediumTileShowName: 0
|
metroMediumTileShowName: 0
|
||||||
metroLargeTileShowName: 0
|
metroLargeTileShowName: 0
|
||||||
@@ -845,23 +884,23 @@ PlayerSettings:
|
|||||||
metroSplashScreenUseBackgroundColor: 0
|
metroSplashScreenUseBackgroundColor: 0
|
||||||
platformCapabilities: {}
|
platformCapabilities: {}
|
||||||
metroTargetDeviceFamilies: {}
|
metroTargetDeviceFamilies: {}
|
||||||
metroFTAName:
|
metroFTAName:
|
||||||
metroFTAFileTypes: []
|
metroFTAFileTypes: []
|
||||||
metroProtocolName:
|
metroProtocolName:
|
||||||
vcxProjDefaultLanguage:
|
vcxProjDefaultLanguage:
|
||||||
XboxOneProductId:
|
XboxOneProductId:
|
||||||
XboxOneUpdateKey:
|
XboxOneUpdateKey:
|
||||||
XboxOneSandboxId:
|
XboxOneSandboxId:
|
||||||
XboxOneContentId:
|
XboxOneContentId:
|
||||||
XboxOneTitleId:
|
XboxOneTitleId:
|
||||||
XboxOneSCId:
|
XboxOneSCId:
|
||||||
XboxOneGameOsOverridePath:
|
XboxOneGameOsOverridePath:
|
||||||
XboxOnePackagingOverridePath:
|
XboxOnePackagingOverridePath:
|
||||||
XboxOneAppManifestOverridePath:
|
XboxOneAppManifestOverridePath:
|
||||||
XboxOneVersion: 1.0.0.0
|
XboxOneVersion: 1.0.0.0
|
||||||
XboxOnePackageEncryption: 0
|
XboxOnePackageEncryption: 0
|
||||||
XboxOnePackageUpdateGranularity: 2
|
XboxOnePackageUpdateGranularity: 2
|
||||||
XboxOneDescription:
|
XboxOneDescription:
|
||||||
XboxOneLanguage:
|
XboxOneLanguage:
|
||||||
- enus
|
- enus
|
||||||
XboxOneCapability: []
|
XboxOneCapability: []
|
||||||
@@ -874,31 +913,31 @@ PlayerSettings:
|
|||||||
XboxOneAllowedProductIds: []
|
XboxOneAllowedProductIds: []
|
||||||
XboxOnePersistentLocalStorageSize: 0
|
XboxOnePersistentLocalStorageSize: 0
|
||||||
XboxOneXTitleMemory: 8
|
XboxOneXTitleMemory: 8
|
||||||
XboxOneOverrideIdentityName:
|
XboxOneOverrideIdentityName:
|
||||||
XboxOneOverrideIdentityPublisher:
|
XboxOneOverrideIdentityPublisher:
|
||||||
vrEditorSettings: {}
|
vrEditorSettings: {}
|
||||||
cloudServicesEnabled:
|
cloudServicesEnabled:
|
||||||
UNet: 1
|
UNet: 1
|
||||||
luminIcon:
|
luminIcon:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_ModelFolderPath:
|
m_ModelFolderPath:
|
||||||
m_PortalFolderPath:
|
m_PortalFolderPath:
|
||||||
luminCert:
|
luminCert:
|
||||||
m_CertPath:
|
m_CertPath:
|
||||||
m_SignPackage: 1
|
m_SignPackage: 1
|
||||||
luminIsChannelApp: 0
|
luminIsChannelApp: 0
|
||||||
luminVersion:
|
luminVersion:
|
||||||
m_VersionCode: 1
|
m_VersionCode: 1
|
||||||
m_VersionName:
|
m_VersionName:
|
||||||
apiCompatibilityLevel: 6
|
apiCompatibilityLevel: 6
|
||||||
activeInputHandler: 0
|
activeInputHandler: 0
|
||||||
cloudProjectId:
|
cloudProjectId:
|
||||||
framebufferDepthMemorylessMode: 0
|
framebufferDepthMemorylessMode: 0
|
||||||
qualitySettingsNames: []
|
qualitySettingsNames: []
|
||||||
projectName:
|
projectName:
|
||||||
organizationId:
|
organizationId:
|
||||||
cloudEnabled: 0
|
cloudEnabled: 0
|
||||||
legacyClampBlendShapeWeights: 0
|
legacyClampBlendShapeWeights: 0
|
||||||
playerDataPath:
|
playerDataPath:
|
||||||
forceSRGBBlit: 1
|
forceSRGBBlit: 1
|
||||||
virtualTexturingSupportEnabled: 0
|
virtualTexturingSupportEnabled: 0
|
||||||
|
|||||||
Reference in New Issue
Block a user