Skip to content
This repository has been archived by the owner on Aug 11, 2024. It is now read-only.

Build pipeline refactor #780

Merged
merged 95 commits into from
May 10, 2021
Merged

Conversation

StephenHodgson
Copy link
Contributor

@StephenHodgson StephenHodgson commented Feb 7, 2021

XRTK - Mixed Reality Toolkit Pull Request

Overview

Especially for Android, it has become more apparent that we need to better handle post build steps that write to the Android manifest. But we'd also like to support building for a specific platform using the command line as well for our CI/CD pipeline.

Core Changes

At the moment, we kind of lump everything together, but we need to do something where each platform can extend the build window as needed to inject their platform specific options.

Platform Project Changes

Each platform will need to implement and extend the build window options and have a way to switch to the correct build platform target, if necessary, and do any pre/post build steps

Changes

Breaking Changes

Entire build pipeline has been replaced

TODO

  • Add a dropdown using IMixedRealityPlatforms to switch between build targets in Build Window
  • Clean up Build Window and split apart platform specific dependencies
  • Move each platform IBuildInfo to their specific repository

Submodule Changes

@StephenHodgson StephenHodgson added the In Progress PR currently still being developed label Feb 7, 2021
…line-refactor

# Conflicts:
#	XRTK-Core/Packages/com.xrtk.core/Editor/BuildAndDeploy/UwpPlayerBuildTools.cs
#	XRTK-Core/Packages/com.xrtk.core/Editor/BuildPipeline/UnityPlayerBuildTools.cs
@StephenHodgson StephenHodgson self-assigned this Feb 8, 2021
# Conflicts:
#	XRTK-Core/Packages/com.xrtk.core/Editor/BuildAndDeploy/UwpPlayerBuildTools.cs
#	XRTK-Core/Packages/com.xrtk.core/Editor/BuildPipeline/UnityPlayerBuildTools.cs
@StephenHodgson
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link
Contributor

Azure Pipelines successfully started running 1 pipeline(s).

@StephenHodgson
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link
Contributor

Azure Pipelines failed to run 1 pipeline(s).

@StephenHodgson
Copy link
Contributor Author

/azp run

@StephenHodgson StephenHodgson marked this pull request as ready for review May 8, 2021 16:55
@StephenHodgson StephenHodgson added Ready for review PR finished primary development, open for review and removed In Progress PR currently still being developed labels May 8, 2021
@StephenHodgson StephenHodgson merged commit c822ce3 into development May 10, 2021
@StephenHodgson StephenHodgson deleted the feature/build-pipeline-refactor branch May 10, 2021 16:08
XRTK-Build-Bot pushed a commit that referenced this pull request May 10, 2021
* Test to see if we can set the il2cpp cache directory at build time

* fixed typo

* put it where it usually is

* Android already properly sets the cache directories, so we'll skip those

also seperate the arch verson caches as well

* just put in a subfolder so we can just cache the parent

* updated IL2CPP caching

* put a lock file in there

* moved build report up to command line method

updated UwpPlayerBuildTools to return the build report

* don't cache android as it has special cache directories defined

delete mabu cache before building lumin

* first pass at build pipeline refactor

* better building

* improve the lumin build a bit

* updated build pipeline ref

* a bit of cleanup

* updated platform definitions

Created new BuildDeployWindow
Renamed current BuildDeployWindow with old suffix

* Added dropdown target platform selector to the new build window and to the root profile

* use the IMixedRealityPlatform name for the build output folder

* updated build window

* removed empty file

* Moved IBuildInfo back into build pipline editor folder

cleaned up platform name logic a bit
Moved platform specific build info to their respective packages
Converted BuildInfo to be a scriptable object

* Commented out old build window since the uwp bulid tools were moved to its respective package

* Added a way to initialize and check if platforms are available without initializing the serivce locator.

* updated wmr checkout

* revert arcore changes

* Debug the build info name and platform

updated lumin checkout

* generate buildinfo if it's missing in build window

* tweak a few logs

* use pattern matching

* check if editor instance is null before trying to render it

* Fixed ScriptableObject.ctr warnings

removed processor interfaces from build info and implemented them in the UnityPlayerBuildTools to then call on IBuildInfo if there is a vaild reference

* Added build info to generated xrtk profiles

* A bit of cleanup and added logs to diagnose Lumin build

* updated build info

* print out the current build target to confirm the type, current build platform, and full output path

* Added additional info to build debug

Moved build info asset creation into the null and current platform target conditional

* add a debug variable

* try a runtime variable

* try a different syntax

* try it another way again

* none of this seems to work lol

* revert

* fixed name coalesce

* fix name

* removed duplicate command line parse

* a bit more cleanup

* Assign the correct runtime platform attribute to the android build info

* use updated api for applicaton identifier

* only parse for command line builds

* Added android build info

Updated project settings
Better assignment of current platform target

* updated command line args and documentation

* updated build info inspector

added serialized fields to build info

* set the bundle identifier better

* updated build info assets

* updated project settings

* Added Oculus Build Info Asset

* Better build info object creation and validation

* cleanup logs

* Made it easier for others to add their own ignored logs to the DevOpsLoggingUtility

* bumped package version due to breaking changes

* added missing header

* removed old window

* added a few more logs to ignore

* use string literals

* updated submodules

updated azure pipelines reference
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Breaking Change Ready for review PR finished primary development, open for review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update build processes
1 participant