mirror of
https://github.com/game-ci/unity-builder.git
synced 2026-02-03 23:49:08 +08:00
Compare commits
5 Commits
v4.6.0
...
codex/fix-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
05a3792dc2 | ||
|
|
53e2b89833 | ||
|
|
d6dc078d5a | ||
|
|
b924651eb9 | ||
|
|
44586b3388 |
@@ -226,6 +226,6 @@ jobs:
|
|||||||
node-version: 20
|
node-version: 20
|
||||||
cache: 'yarn'
|
cache: 'yarn'
|
||||||
- run: yarn install --frozen-lockfile
|
- run: yarn install --frozen-lockfile
|
||||||
- run: yarn test cloud-runner-github-checks-integration-test --detectOpenHandles --forceExit --runInBand
|
- run: yarn test cloud-runner-github-checks.integration --detectOpenHandles --forceExit --runInBand
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
@@ -56,23 +56,14 @@ namespace UnityBuilderAction
|
|||||||
// of either `UnityEditor.BuildPlayerOptions` or `UnityEditor.BuildPlayerWithProfileOptions`
|
// of either `UnityEditor.BuildPlayerOptions` or `UnityEditor.BuildPlayerWithProfileOptions`
|
||||||
dynamic buildPlayerOptions;
|
dynamic buildPlayerOptions;
|
||||||
|
|
||||||
if (options.TryGetValue("activeBuildProfile", out var buildProfilePath)) {
|
if (options["customBuildProfile"] != "") {
|
||||||
if (string.IsNullOrEmpty(buildProfilePath)) {
|
|
||||||
throw new Exception("`-activeBuildProfile` is set but with an empty value; this shouldn't happen");
|
|
||||||
}
|
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
#if UNITY_6000_0_OR_NEWER
|
||||||
// Load build profile from Assets folder
|
// Load build profile from Assets folder
|
||||||
var buildProfile = AssetDatabase.LoadAssetAtPath<BuildProfile>(buildProfilePath)
|
BuildProfile buildProfile = AssetDatabase.LoadAssetAtPath<BuildProfile>(options["customBuildProfile"]);
|
||||||
?? throw new Exception("Build profile file not found at path: " + buildProfilePath);
|
|
||||||
|
|
||||||
#if !BUILD_PROFILE_LOADED
|
// Set it as active
|
||||||
throw new Exception("Build profile's define symbol not present before script execution; shouldn't happen");
|
BuildProfile.SetActiveBuildProfile(buildProfile);
|
||||||
#endif // BUILD_PROFILE_LOADED
|
|
||||||
|
|
||||||
// no need to set active profile, as already set by `-activeBuildProfile` CLI argument
|
|
||||||
// BuildProfile.SetActiveBuildProfile(buildProfile);
|
|
||||||
Debug.Log($"build profile: {buildProfile.name}");
|
|
||||||
|
|
||||||
// Define BuildPlayerWithProfileOptions
|
// Define BuildPlayerWithProfileOptions
|
||||||
buildPlayerOptions = new BuildPlayerWithProfileOptions {
|
buildPlayerOptions = new BuildPlayerWithProfileOptions {
|
||||||
@@ -80,16 +71,12 @@ namespace UnityBuilderAction
|
|||||||
locationPathName = options["customBuildPath"],
|
locationPathName = options["customBuildPath"],
|
||||||
options = buildOptions,
|
options = buildOptions,
|
||||||
};
|
};
|
||||||
#else // UNITY_6000_0_OR_NEWER
|
#else
|
||||||
throw new Exception("Build profiles are not supported by this version of Unity (" + Application.unityVersion +")");
|
throw new Exception("Build profiles are not supported by this version of Unity (" + Application.unityVersion +")");
|
||||||
#endif // UNITY_6000_0_OR_NEWER
|
#endif
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
#if BUILD_PROFILE_LOADED
|
|
||||||
throw new Exception("Build profile's define symbol present; shouldn't happen");
|
|
||||||
#endif // BUILD_PROFILE_LOADED
|
|
||||||
|
|
||||||
// Gather values from project
|
// Gather values from project
|
||||||
var scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled).Select(s => s.path).ToArray();
|
var scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled).Select(s => s.path).ToArray();
|
||||||
|
|
||||||
|
|||||||
@@ -21,19 +21,6 @@ namespace UnityBuilderAction.Input
|
|||||||
EditorApplication.Exit(110);
|
EditorApplication.Exit(110);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
var buildProfileSupport = true;
|
|
||||||
#else
|
|
||||||
var buildProfileSupport = false;
|
|
||||||
#endif // UNITY_6000_0_OR_NEWER
|
|
||||||
|
|
||||||
string buildProfile;
|
|
||||||
if (buildProfileSupport && validatedOptions.TryGetValue("activeBuildProfile", out buildProfile)) {
|
|
||||||
if (validatedOptions.ContainsKey("buildTarget")) {
|
|
||||||
Console.WriteLine("Extra argument -buildTarget");
|
|
||||||
EditorApplication.Exit(122);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
string buildTarget;
|
string buildTarget;
|
||||||
if (!validatedOptions.TryGetValue("buildTarget", out buildTarget)) {
|
if (!validatedOptions.TryGetValue("buildTarget", out buildTarget)) {
|
||||||
Console.WriteLine("Missing argument -buildTarget");
|
Console.WriteLine("Missing argument -buildTarget");
|
||||||
@@ -44,7 +31,6 @@ namespace UnityBuilderAction.Input
|
|||||||
Console.WriteLine(buildTarget + " is not a defined " + typeof(BuildTarget).Name);
|
Console.WriteLine(buildTarget + " is not a defined " + typeof(BuildTarget).Name);
|
||||||
EditorApplication.Exit(121);
|
EditorApplication.Exit(121);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
string customBuildPath;
|
string customBuildPath;
|
||||||
if (!validatedOptions.TryGetValue("customBuildPath", out customBuildPath)) {
|
if (!validatedOptions.TryGetValue("customBuildPath", out customBuildPath)) {
|
||||||
|
|||||||
3
dist/platforms/mac/steps/build.sh
vendored
3
dist/platforms/mac/steps/build.sh
vendored
@@ -153,11 +153,10 @@ echo ""
|
|||||||
-password "$UNITY_PASSWORD" \
|
-password "$UNITY_PASSWORD" \
|
||||||
-customBuildName "$BUILD_NAME" \
|
-customBuildName "$BUILD_NAME" \
|
||||||
-projectPath "$UNITY_PROJECT_PATH" \
|
-projectPath "$UNITY_PROJECT_PATH" \
|
||||||
$( [ -z "$BUILD_PROFILE" ] && echo "-buildTarget $BUILD_TARGET") \
|
-buildTarget "$BUILD_TARGET" \
|
||||||
-customBuildTarget "$BUILD_TARGET" \
|
-customBuildTarget "$BUILD_TARGET" \
|
||||||
-customBuildPath "$CUSTOM_BUILD_PATH" \
|
-customBuildPath "$CUSTOM_BUILD_PATH" \
|
||||||
-customBuildProfile "$BUILD_PROFILE" \
|
-customBuildProfile "$BUILD_PROFILE" \
|
||||||
${BUILD_PROFILE:+-activeBuildProfile} ${BUILD_PROFILE:+"$BUILD_PROFILE"} \
|
|
||||||
-executeMethod "$BUILD_METHOD" \
|
-executeMethod "$BUILD_METHOD" \
|
||||||
-buildVersion "$VERSION" \
|
-buildVersion "$VERSION" \
|
||||||
-androidVersionCode "$ANDROID_VERSION_CODE" \
|
-androidVersionCode "$ANDROID_VERSION_CODE" \
|
||||||
|
|||||||
3
dist/platforms/ubuntu/steps/build.sh
vendored
3
dist/platforms/ubuntu/steps/build.sh
vendored
@@ -125,11 +125,10 @@ unity-editor \
|
|||||||
$( [ "${MANUAL_EXIT}" == "true" ] || echo "-quit" ) \
|
$( [ "${MANUAL_EXIT}" == "true" ] || echo "-quit" ) \
|
||||||
-customBuildName "$BUILD_NAME" \
|
-customBuildName "$BUILD_NAME" \
|
||||||
-projectPath "$UNITY_PROJECT_PATH" \
|
-projectPath "$UNITY_PROJECT_PATH" \
|
||||||
$( [ -z "$BUILD_PROFILE" ] && echo "-buildTarget $BUILD_TARGET" ) \
|
-buildTarget "$BUILD_TARGET" \
|
||||||
-customBuildTarget "$BUILD_TARGET" \
|
-customBuildTarget "$BUILD_TARGET" \
|
||||||
-customBuildPath "$CUSTOM_BUILD_PATH" \
|
-customBuildPath "$CUSTOM_BUILD_PATH" \
|
||||||
-customBuildProfile "$BUILD_PROFILE" \
|
-customBuildProfile "$BUILD_PROFILE" \
|
||||||
${BUILD_PROFILE:+-activeBuildProfile} ${BUILD_PROFILE:+"$BUILD_PROFILE"} \
|
|
||||||
-executeMethod "$BUILD_METHOD" \
|
-executeMethod "$BUILD_METHOD" \
|
||||||
-buildVersion "$VERSION" \
|
-buildVersion "$VERSION" \
|
||||||
-androidVersionCode "$ANDROID_VERSION_CODE" \
|
-androidVersionCode "$ANDROID_VERSION_CODE" \
|
||||||
|
|||||||
8
dist/platforms/windows/build.ps1
vendored
8
dist/platforms/windows/build.ps1
vendored
@@ -166,6 +166,7 @@ $unityArgs = @(
|
|||||||
"-customBuildName", "`"$Env:BUILD_NAME`"",
|
"-customBuildName", "`"$Env:BUILD_NAME`"",
|
||||||
"-projectPath", "`"$Env:UNITY_PROJECT_PATH`"",
|
"-projectPath", "`"$Env:UNITY_PROJECT_PATH`"",
|
||||||
"-executeMethod", "`"$Env:BUILD_METHOD`"",
|
"-executeMethod", "`"$Env:BUILD_METHOD`"",
|
||||||
|
"-buildTarget", "`"$Env:BUILD_TARGET`"",
|
||||||
"-customBuildTarget", "`"$Env:BUILD_TARGET`"",
|
"-customBuildTarget", "`"$Env:BUILD_TARGET`"",
|
||||||
"-customBuildPath", "`"$Env:CUSTOM_BUILD_PATH`"",
|
"-customBuildPath", "`"$Env:CUSTOM_BUILD_PATH`"",
|
||||||
"-customBuildProfile", "`"$Env:BUILD_PROFILE`"",
|
"-customBuildProfile", "`"$Env:BUILD_PROFILE`"",
|
||||||
@@ -180,13 +181,6 @@ $unityArgs = @(
|
|||||||
"-logfile", "-"
|
"-logfile", "-"
|
||||||
) + $customParametersArray
|
) + $customParametersArray
|
||||||
|
|
||||||
if (-not $Env:BUILD_PROFILE) {
|
|
||||||
$unityArgs += @("-buildTarget", $Env:BUILD_TARGET)
|
|
||||||
}
|
|
||||||
if ($Env:BUILD_PROFILE) {
|
|
||||||
$unityArgs += @("-activeBuildProfile", $Env:BUILD_PROFILE)
|
|
||||||
}
|
|
||||||
|
|
||||||
# Remove null items as that will fail the Start-Process call
|
# Remove null items as that will fail the Start-Process call
|
||||||
$unityArgs = $unityArgs | Where-Object { $_ -ne $null }
|
$unityArgs = $unityArgs | Where-Object { $_ -ne $null }
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,6 @@ module.exports = {
|
|||||||
// An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
|
// An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
|
||||||
modulePathIgnorePatterns: ['<rootDir>/lib/', '<rootDir>/dist/'],
|
modulePathIgnorePatterns: ['<rootDir>/lib/', '<rootDir>/dist/'],
|
||||||
|
|
||||||
// Files that will be run before Jest is loaded to set globals like fetch
|
// A list of paths to modules that run some code to configure or set up the testing framework before each test
|
||||||
setupFiles: ['<rootDir>/src/jest.globals.ts'],
|
|
||||||
// A list of paths to modules that run some code to configure or set up the testing framework after the environment is ready
|
|
||||||
setupFilesAfterEnv: ['<rootDir>/src/jest.setup.ts'],
|
setupFilesAfterEnv: ['<rootDir>/src/jest.setup.ts'],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
// Integration test for exercising real GitHub check creation and updates.
|
import { BuildParameters } from '../model';
|
||||||
import CloudRunner from '../model/cloud-runner/cloud-runner';
|
import CloudRunner from '../model/cloud-runner/cloud-runner';
|
||||||
import UnityVersioning from '../model/unity-versioning';
|
import UnityVersioning from '../model/unity-versioning';
|
||||||
|
import { Cli } from '../model/cli/cli';
|
||||||
import GitHub from '../model/github';
|
import GitHub from '../model/github';
|
||||||
import { TIMEOUT_INFINITE, createParameters } from '../test-utils/cloud-runner-test-helpers';
|
import { OptionValues } from 'commander';
|
||||||
|
|
||||||
|
export const TIMEOUT_INFINITE = 1e9;
|
||||||
|
|
||||||
|
async function createParameters(overrides?: OptionValues) {
|
||||||
|
if (overrides) Cli.options = overrides;
|
||||||
|
|
||||||
|
return BuildParameters.create();
|
||||||
|
}
|
||||||
|
|
||||||
const runIntegration = process.env.RUN_GITHUB_INTEGRATION_TESTS === 'true';
|
const runIntegration = process.env.RUN_GITHUB_INTEGRATION_TESTS === 'true';
|
||||||
const describeOrSkip = runIntegration ? describe : describe.skip;
|
const describeOrSkip = runIntegration ? describe : describe.skip;
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
import { fetch as undiciFetch, Headers, Request, Response } from 'undici';
|
|
||||||
|
|
||||||
Object.assign(globalThis, { fetch: undiciFetch, Headers, Request, Response });
|
|
||||||
@@ -1,5 +1,15 @@
|
|||||||
import failOnConsole from 'jest-fail-on-console';
|
import failOnConsole from 'jest-fail-on-console';
|
||||||
|
|
||||||
|
// Polyfill fetch for the Node.js test environment.
|
||||||
|
// Jest runs tests inside a VM context where the global `fetch` is not
|
||||||
|
// automatically provided, even on Node 18+. Octokit requires a `fetch`
|
||||||
|
// implementation, so we provide one using undici's implementation.
|
||||||
|
// This ensures tests that interact with Octokit do not throw when
|
||||||
|
// constructing the client.
|
||||||
|
import { fetch as undiciFetch, Headers, Request, Response } from 'undici';
|
||||||
|
|
||||||
|
Object.assign(globalThis, { fetch: undiciFetch, Headers, Request, Response });
|
||||||
|
|
||||||
// Fail when console logs something inside a test - use spyOn instead
|
// Fail when console logs something inside a test - use spyOn instead
|
||||||
failOnConsole({
|
failOnConsole({
|
||||||
shouldFailOnWarn: true,
|
shouldFailOnWarn: true,
|
||||||
|
|||||||
@@ -1,8 +1,16 @@
|
|||||||
|
import { BuildParameters } from '../..';
|
||||||
import CloudRunner from '../cloud-runner';
|
import CloudRunner from '../cloud-runner';
|
||||||
import UnityVersioning from '../../unity-versioning';
|
import UnityVersioning from '../../unity-versioning';
|
||||||
|
import { Cli } from '../../cli/cli';
|
||||||
import setups from './cloud-runner-suite.test';
|
import setups from './cloud-runner-suite.test';
|
||||||
|
import { OptionValues } from 'commander';
|
||||||
import GitHub from '../../github';
|
import GitHub from '../../github';
|
||||||
import { TIMEOUT_INFINITE, createParameters } from '../../../test-utils/cloud-runner-test-helpers';
|
export const TIMEOUT_INFINITE = 1e9;
|
||||||
|
async function CreateParameters(overrides: OptionValues | undefined) {
|
||||||
|
if (overrides) Cli.options = overrides;
|
||||||
|
|
||||||
|
return BuildParameters.create();
|
||||||
|
}
|
||||||
describe('Cloud Runner Github Checks', () => {
|
describe('Cloud Runner Github Checks', () => {
|
||||||
setups();
|
setups();
|
||||||
it('Responds', () => {});
|
it('Responds', () => {});
|
||||||
@@ -28,7 +36,7 @@ describe('Cloud Runner Github Checks', () => {
|
|||||||
'Check Handling Direct',
|
'Check Handling Direct',
|
||||||
async () => {
|
async () => {
|
||||||
// Setup parameters
|
// Setup parameters
|
||||||
const buildParameter = await createParameters({
|
const buildParameter = await CreateParameters({
|
||||||
versioning: 'None',
|
versioning: 'None',
|
||||||
projectPath: 'test-project',
|
projectPath: 'test-project',
|
||||||
unityVersion: UnityVersioning.read('test-project'),
|
unityVersion: UnityVersioning.read('test-project'),
|
||||||
@@ -46,7 +54,7 @@ describe('Cloud Runner Github Checks', () => {
|
|||||||
'Check Handling Via Async Workflow',
|
'Check Handling Via Async Workflow',
|
||||||
async () => {
|
async () => {
|
||||||
// Setup parameters
|
// Setup parameters
|
||||||
const buildParameter = await createParameters({
|
const buildParameter = await CreateParameters({
|
||||||
versioning: 'None',
|
versioning: 'None',
|
||||||
projectPath: 'test-project',
|
projectPath: 'test-project',
|
||||||
unityVersion: UnityVersioning.read('test-project'),
|
unityVersion: UnityVersioning.read('test-project'),
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
import { BuildParameters } from '../model';
|
|
||||||
import { Cli } from '../model/cli/cli';
|
|
||||||
import { OptionValues } from 'commander';
|
|
||||||
|
|
||||||
export const TIMEOUT_INFINITE = 1e9;
|
|
||||||
|
|
||||||
export async function createParameters(overrides?: OptionValues) {
|
|
||||||
if (overrides) Cli.options = overrides;
|
|
||||||
|
|
||||||
return BuildParameters.create();
|
|
||||||
}
|
|
||||||
@@ -20,8 +20,7 @@ MonoBehaviour:
|
|||||||
rid: 200022742090383361
|
rid: 200022742090383361
|
||||||
m_OverrideGlobalSceneList: 0
|
m_OverrideGlobalSceneList: 0
|
||||||
m_Scenes: []
|
m_Scenes: []
|
||||||
m_ScriptingDefines:
|
m_ScriptingDefines: []
|
||||||
- BUILD_PROFILE_LOADED
|
|
||||||
m_PlayerSettingsYaml:
|
m_PlayerSettingsYaml:
|
||||||
m_Settings: []
|
m_Settings: []
|
||||||
references:
|
references:
|
||||||
|
|||||||
Reference in New Issue
Block a user