mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00
feat: Android updates for Windows and androidVersionCode output (#478)
* Create android keystore on windows, output android version code * Add androidVersionCode output test * Move android keystore decode logic to TS
This commit is contained in:
parent
f03bee03f6
commit
5bd589e19f
@ -188,6 +188,8 @@ outputs:
|
|||||||
description: 'The Persistent Volume (PV) where the build artifacts have been stored by Kubernetes'
|
description: 'The Persistent Volume (PV) where the build artifacts have been stored by Kubernetes'
|
||||||
buildVersion:
|
buildVersion:
|
||||||
description: 'The generated version used for the Unity build'
|
description: 'The generated version used for the Unity build'
|
||||||
|
androidVersionCode:
|
||||||
|
description: 'The generated versionCode used for the Android Unity build'
|
||||||
branding:
|
branding:
|
||||||
icon: 'box'
|
icon: 'box'
|
||||||
color: 'gray-dark'
|
color: 'gray-dark'
|
||||||
|
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.
10
dist/platforms/ubuntu/steps/build.sh
vendored
10
dist/platforms/ubuntu/steps/build.sh
vendored
@ -63,17 +63,9 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Prepare Android keystore and SDK, if needed
|
# Prepare Android SDK, if needed
|
||||||
#
|
#
|
||||||
|
|
||||||
if [[ "$BUILD_TARGET" == "Android" && -n "$ANDROID_KEYSTORE_NAME" && -n "$ANDROID_KEYSTORE_BASE64" ]]; then
|
|
||||||
echo "Creating Android keystore."
|
|
||||||
echo "$ANDROID_KEYSTORE_BASE64" | base64 --decode > "$UNITY_PROJECT_PATH/$ANDROID_KEYSTORE_NAME"
|
|
||||||
echo "Created Android keystore."
|
|
||||||
else
|
|
||||||
echo "Not creating Android keystore."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$BUILD_TARGET" == "Android" && -n "$ANDROID_SDK_MANAGER_PARAMETERS" ]]; then
|
if [[ "$BUILD_TARGET" == "Android" && -n "$ANDROID_SDK_MANAGER_PARAMETERS" ]]; then
|
||||||
echo "Updating Android SDK with parameters: $ANDROID_SDK_MANAGER_PARAMETERS"
|
echo "Updating Android SDK with parameters: $ANDROID_SDK_MANAGER_PARAMETERS"
|
||||||
export JAVA_HOME="$(awk -F'=' '/JAVA_HOME=/{print $2}' /usr/bin/unity-editor.d/*)"
|
export JAVA_HOME="$(awk -F'=' '/JAVA_HOME=/{print $2}' /usr/bin/unity-editor.d/*)"
|
||||||
|
@ -32,6 +32,7 @@ async function runMain() {
|
|||||||
|
|
||||||
// Set output
|
// Set output
|
||||||
await Output.setBuildVersion(buildParameters.buildVersion);
|
await Output.setBuildVersion(buildParameters.buildVersion);
|
||||||
|
await Output.setAndroidVersionCode(buildParameters.androidVersionCode);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed((error as Error).message);
|
core.setFailed((error as Error).message);
|
||||||
}
|
}
|
||||||
|
@ -7,3 +7,11 @@ describe('Output', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Output', () => {
|
||||||
|
describe('setAndroidVersionCode', () => {
|
||||||
|
it('does not throw', async () => {
|
||||||
|
await expect(Output.setAndroidVersionCode('1000')).resolves.not.toThrow();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
@ -4,6 +4,10 @@ class Output {
|
|||||||
static async setBuildVersion(buildVersion) {
|
static async setBuildVersion(buildVersion) {
|
||||||
await core.setOutput('buildVersion', buildVersion);
|
await core.setOutput('buildVersion', buildVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async setAndroidVersionCode(androidVersionCode) {
|
||||||
|
await core.setOutput('androidVersionCode', androidVersionCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Output;
|
export default Output;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import { BuildParameters } from '.';
|
import { BuildParameters } from '.';
|
||||||
import { SetupMac, SetupWindows } from './platform-setup/';
|
import { SetupMac, SetupWindows, SetupAndroid } from './platform-setup/';
|
||||||
import ValidateWindows from './platform-validation/validate-windows';
|
import ValidateWindows from './platform-validation/validate-windows';
|
||||||
|
|
||||||
class PlatformSetup {
|
class PlatformSetup {
|
||||||
@ -33,6 +33,8 @@ class PlatformSetup {
|
|||||||
let servicesConfig = fs.readFileSync(servicesConfigPathTemplate).toString();
|
let servicesConfig = fs.readFileSync(servicesConfigPathTemplate).toString();
|
||||||
servicesConfig = servicesConfig.replace('%URL%', buildParameters.unityLicensingServer);
|
servicesConfig = servicesConfig.replace('%URL%', buildParameters.unityLicensingServer);
|
||||||
fs.writeFileSync(servicesConfigPath, servicesConfig);
|
fs.writeFileSync(servicesConfigPath, servicesConfig);
|
||||||
|
|
||||||
|
SetupAndroid.setup(buildParameters);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import SetupWindows from './setup-windows';
|
import SetupWindows from './setup-windows';
|
||||||
import SetupMac from './setup-mac';
|
import SetupMac from './setup-mac';
|
||||||
|
import SetupAndroid from './setup-android';
|
||||||
|
|
||||||
export { SetupWindows, SetupMac };
|
export { SetupWindows, SetupMac, SetupAndroid };
|
||||||
|
21
src/model/platform-setup/setup-android.ts
Normal file
21
src/model/platform-setup/setup-android.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
import { BuildParameters } from '..';
|
||||||
|
|
||||||
|
class SetupAndroid {
|
||||||
|
public static async setup(buildParameters: BuildParameters) {
|
||||||
|
const { targetPlatform, androidKeystoreBase64, androidKeystoreName, projectPath } = buildParameters;
|
||||||
|
|
||||||
|
if (targetPlatform === 'Android' && androidKeystoreBase64 !== '' && androidKeystoreName !== '') {
|
||||||
|
SetupAndroid.setupAndroidRun(androidKeystoreBase64, androidKeystoreName, projectPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static setupAndroidRun(androidKeystoreBase64: string, androidKeystoreName: string, projectPath: string) {
|
||||||
|
const decodedKeystore = Buffer.from(androidKeystoreBase64, 'base64').toString('binary');
|
||||||
|
const githubWorkspace = process.env.GITHUB_WORKSPACE || '';
|
||||||
|
fs.writeFileSync(path.join(githubWorkspace, projectPath, androidKeystoreName), decodedKeystore, 'binary');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default SetupAndroid;
|
Loading…
Reference in New Issue
Block a user