diff --git a/.github/workflows/build-tests-mac.yml b/.github/workflows/build-tests-mac.yml index 4775aef9d..77f843272 100644 --- a/.github/workflows/build-tests-mac.yml +++ b/.github/workflows/build-tests-mac.yml @@ -24,6 +24,13 @@ jobs: targetPlatform: - StandaloneOSX # Build a MacOS executable - iOS # Build an iOS executable + include: + # Additionally test enableGpu build for a standalone windows target + - unityVersion: 6000.0.36f1 + targetPlatform: StandaloneOSX + - unityVersion: 6000.0.36f1 + targetPlatform: StandaloneOSX + buildProfile: 'Assets/Settings/Build Profiles/Sample macOS Build Profile.asset' steps: ########################### @@ -65,6 +72,7 @@ jobs: projectPath: ${{ matrix.projectPath }} unityVersion: ${{ matrix.unityVersion }} targetPlatform: ${{ matrix.targetPlatform }} + buildProfile: ${{ matrix.buildProfile }} customParameters: -profile SomeProfile -someBoolean -someValue exampleValue # We use dirty build because we are replacing the default project settings file above allowDirtyBuild: true @@ -74,6 +82,6 @@ jobs: ########################### - uses: actions/upload-artifact@v4 with: - name: Build ${{ matrix.targetPlatform }} on MacOS (${{ matrix.unityVersion }}) + name: Build ${{ matrix.targetPlatform }} on MacOS (${{ matrix.unityVersion }})${{ matrix.buildProfile && ' With Build Profile' || '' }} path: build retention-days: 14 diff --git a/.github/workflows/build-tests-windows.yml b/.github/workflows/build-tests-windows.yml index c0c5de19d..72948f0aa 100644 --- a/.github/workflows/build-tests-windows.yml +++ b/.github/workflows/build-tests-windows.yml @@ -34,7 +34,12 @@ jobs: unityVersion: 2023.2.2f1 targetPlatform: StandaloneWindows64 enableGpu: true - + - unityVersion: 6000.0.36f1 + targetPlatform: StandaloneWindows64 + - unityVersion: 6000.0.36f1 + targetPlatform: StandaloneWindows64 + buildProfile: 'Assets/Settings/Build Profiles/Sample Windows Build Profile.asset' + steps: ########################### # Checkout # @@ -79,6 +84,7 @@ jobs: projectPath: ${{ matrix.projectPath }} unityVersion: ${{ matrix.unityVersion }} targetPlatform: ${{ matrix.targetPlatform }} + buildProfile: ${{ matrix.buildProfile }} enableGpu: ${{ matrix.enableGpu }} customParameters: -profile SomeProfile -someBoolean -someValue exampleValue allowDirtyBuild: true @@ -140,6 +146,6 @@ jobs: ########################### - uses: actions/upload-artifact@v4 with: - name: Build ${{ matrix.targetPlatform }} on Windows (${{ matrix.unityVersion }})${{ matrix.enableGpu && ' With GPU' || '' }} + name: Build ${{ matrix.targetPlatform }} on Windows (${{ matrix.unityVersion }})${{ matrix.enableGpu && ' With GPU' || '' }}${{ matrix.buildProfile && ' With Build Profile' || '' }} path: build retention-days: 14 diff --git a/dist/platforms/windows/build.ps1 b/dist/platforms/windows/build.ps1 index 0751246d7..b2477a45e 100644 --- a/dist/platforms/windows/build.ps1 +++ b/dist/platforms/windows/build.ps1 @@ -181,10 +181,10 @@ $unityArgs = @( ) + $customParametersArray if (-not $Env:BUILD_PROFILE) { - $unityArgs += @("-buildTarget", $Env:BUILD_TARGET) + $unityArgs += @("-buildTarget", "`"$Env:BUILD_TARGET`"") } if ($Env:BUILD_PROFILE) { - $unityArgs += @("-activeBuildProfile", $Env:BUILD_PROFILE) + $unityArgs += @("-activeBuildProfile", "`"$Env:BUILD_PROFILE`"") } # Remove null items as that will fail the Start-Process call diff --git a/test-project/Assets/Settings/Build Profiles/Sample Windows Build Profile.asset b/test-project/Assets/Settings/Build Profiles/Sample Windows Build Profile.asset new file mode 100644 index 000000000..fe8120f16 --- /dev/null +++ b/test-project/Assets/Settings/Build Profiles/Sample Windows Build Profile.asset @@ -0,0 +1,49 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 15003, guid: 0000000000000000e000000000000000, type: 0} + m_Name: Sample Windows Build Profile + m_EditorClassIdentifier: + m_AssetVersion: 1 + m_BuildTarget: 19 + m_Subtarget: 2 + m_PlatformId: 4e3c793746204150860bf175a9a41a05 + m_PlatformBuildProfile: + rid: 9120355575023534081 + m_OverrideGlobalSceneList: 0 + m_Scenes: [] + m_ScriptingDefines: + - BUILD_PROFILE_LOADED + m_PlayerSettingsYaml: + m_Settings: [] + references: + version: 2 + RefIds: + - rid: 9120355575023534081 + type: {class: WindowsPlatformSettings, ns: UnityEditor.WindowsStandalone, asm: UnityEditor.WindowsStandalone.Extensions} + data: + m_Development: 1 + m_ConnectProfiler: 0 + m_BuildWithDeepProfilingSupport: 0 + m_AllowDebugging: 0 + m_WaitForManagedDebugger: 0 + m_ManagedDebuggerFixedPort: 0 + m_ExplicitNullChecks: 0 + m_ExplicitDivideByZeroChecks: 0 + m_ExplicitArrayBoundsChecks: 0 + m_CompressionType: 0 + m_InstallInBuildFolder: 0 + m_WindowsBuildAndRunDeployTarget: 0 + m_Architecture: 0 + m_CreateSolution: 0 + m_CopyPDBFiles: 0 + m_WindowsDevicePortalAddress: + m_WindowsDevicePortalUsername: diff --git a/test-project/Assets/Settings/Build Profiles/Sample Windows Build Profile.asset.meta b/test-project/Assets/Settings/Build Profiles/Sample Windows Build Profile.asset.meta new file mode 100644 index 000000000..83c9d16ea --- /dev/null +++ b/test-project/Assets/Settings/Build Profiles/Sample Windows Build Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89540e92f0e247d4084f426eb3bdb288 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/test-project/Assets/Settings/Build Profiles/Sample macOS Build Profile.asset b/test-project/Assets/Settings/Build Profiles/Sample macOS Build Profile.asset new file mode 100644 index 000000000..013f1d429 --- /dev/null +++ b/test-project/Assets/Settings/Build Profiles/Sample macOS Build Profile.asset @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 15003, guid: 0000000000000000e000000000000000, type: 0} + m_Name: Sample macOS Build Profile + m_EditorClassIdentifier: + m_AssetVersion: 1 + m_BuildTarget: 2 + m_Subtarget: 2 + m_PlatformId: 0d2129357eac403d8b359c2dcbf82502 + m_PlatformBuildProfile: + rid: 9120355587586260993 + m_OverrideGlobalSceneList: 0 + m_Scenes: [] + m_ScriptingDefines: + - BUILD_PROFILE_LOADED + m_PlayerSettingsYaml: + m_Settings: [] + references: + version: 2 + RefIds: + - rid: 9120355587586260993 + type: {class: OSXStandaloneBuildProfile, ns: UnityEditor.OSXStandalone, asm: UnityEditor.OSXStandalone.Extensions} + data: + m_Development: 0 + m_ConnectProfiler: 0 + m_BuildWithDeepProfilingSupport: 0 + m_AllowDebugging: 0 + m_WaitForManagedDebugger: 0 + m_ManagedDebuggerFixedPort: 0 + m_ExplicitNullChecks: 0 + m_ExplicitDivideByZeroChecks: 0 + m_ExplicitArrayBoundsChecks: 0 + m_CompressionType: 0 + m_InstallInBuildFolder: 0 + m_MacOSXcodeBuildConfig: 1 + m_Architecture: 2 + m_CreateXcodeProject: 0 diff --git a/test-project/Assets/Settings/Build Profiles/Sample macOS Build Profile.asset.meta b/test-project/Assets/Settings/Build Profiles/Sample macOS Build Profile.asset.meta new file mode 100644 index 000000000..c3027aa61 --- /dev/null +++ b/test-project/Assets/Settings/Build Profiles/Sample macOS Build Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 081f4929fd671734ea1aa1511be7ec97 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: