public static void CreateBuild(BuildTarget targetPlatform)
        {
            Debug.Log("Creating Build for platform " + targetPlatform);
            if (File.Exists(CloudTestConfig.BuildPath))
            {
                File.Delete(CloudTestConfig.BuildPath);
            }

#if UNITY_IOS
            if (Directory.Exists(CloudTestConfig.IOSBuildDir))
            {
                Directory.Delete(CloudTestConfig.IOSBuildDir, true);
            }
#endif

            // Editor code flag for utf cloud workflows
            CloudTestPipeline.SetTestRunOnCloud(true);

            // Setting scripting defines
            AutomatedQAEditorSettings.ApplyBuildFlags(BuildPipeline.GetBuildTargetGroup(targetPlatform));

            var filter = GetTestFilter();

            CloudTestPipeline.MakeBuild(filter.ToArray(), targetPlatform);

            if (Application.isBatchMode)
            {
                CloudTestPipeline.testBuildFinished += () => Debug.Log($"Build {CloudTestConfig.BuildPath} complete");
                // Since MakeBuild executes on Update we need to manually invoke it to prevent batch mode exiting early
                EditorApplication.update.Invoke();
            }
        }
        private static List <string> GetTestFilter()
        {
            var cloudTests = CloudTestPipeline.GetCloudTests();
            var filter     = new List <string>();

            foreach (var tests in cloudTests.Values)
            {
                foreach (var test in tests)
                {
                    Debug.Log("Adding Test: " + test);
                    filter.Add(test);
                }
            }

            return(filter);
        }
示例#3
0
        public BuildPlayerOptions ModifyOptions(BuildPlayerOptions playerOptions)
        {
            if (CloudTestPipeline.IsRunningOnCloud())
            {
                playerOptions.options &= ~(BuildOptions.AutoRunPlayer);
#if UNITY_IOS
                playerOptions.locationPathName = CloudTestConfig.IOSBuildDir;
#else
                playerOptions.locationPathName = CloudTestConfig.BuildPath;
#endif

                return(playerOptions);
            }

            return(playerOptions);
        }
        public static void ChangeXcodePlist(BuildTarget buildTarget, string pathToBuiltProject)
        {
            // Adds UIFileSharingEnabled to Info.plist
            if (buildTarget == BuildTarget.iOS && CloudTestPipeline.IsRunningOnCloud())
            {
                // Get plist
                string        plistPath = pathToBuiltProject + "/Info.plist";
                PlistDocument plist     = new PlistDocument();
                plist.ReadFromString(File.ReadAllText(plistPath));

                // Get root
                PlistElementDict rootDict = plist.root;
                rootDict.SetBoolean("UIFileSharingEnabled", true);
                // rootDict.SetString("CFBundleDisplayName", "CloudBundle");
                // Write to Info.plist
                Debug.Log("Updating Info.plist");
                File.WriteAllText(plistPath, plist.WriteToString());
            }
        }