예제 #1
0
        public virtual void OnPreBuild(IStepLocator locator)
        {
            var pipelineStep     = locator.Get <BuildPipelineStep>();
            var buildTarget      = pipelineStep.BuildTarget;
            var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(buildTarget);

            var defines = CompilerDefinesUtils.ReadDefines()
                          .GetAllDefinesByPlatform(buildTargetGroup)
                          .Union(_addDefines)
                          .Except(_removeDefines)
                          .ToList();

            CompilerDefinesUtils.Write(defines, buildTargetGroup);
        }
예제 #2
0
        /// <summary>
        /// Собирает информацию о билде и создает файл
        /// </summary>
        public virtual void OnPreBuild(IStepLocator locator)
        {
            var buildInfo = ScriptableObject.CreateInstance <BuildInfo>();

            buildInfo.BuildTimestamp = DateTime.Now;
#if UNITY_5_6_OR_NEWER
            buildInfo.BundleIdentifier = PlayerSettings.applicationIdentifier;
#else
            buildInfo.BundleIdentifier = PlayerSettings.bundleIdentifier;
#endif
            buildInfo.BundleVersion = !string.IsNullOrEmpty(PlayerSettings.bundleVersion) ? PlayerSettings.bundleVersion : "N/A";
            buildInfo.BuildDefines  = CompilerDefinesUtils.ReadDefines().GetAllDefinesByPlatform(EditorUserBuildSettings.selectedBuildTargetGroup).ToArray();

            // Если собирается на сервере CI ряд параметров берётся из переменных окружения.
            if (EnvVar("TEAMCITY_VERSION") != null)    //
            {
                buildInfo.MilestoneCodename = EnvVar("TEAMCITY_PROJECT_NAME") ?? "TEAMCITY N/A";
                buildInfo.BuildJob          = EnvVar("TEAMCITY_BUILDCONF_NAME") ?? "TEAMCITY N/A";
                buildInfo.SourceCodeVersion = EnvVar("BUILD_VCS_NUMBER") ?? "TEAMCITY N/A";
                if (!int.TryParse(EnvVar("BUILD_NUMBER") ?? "-1", out buildInfo.BuildNumber))
                {
                    buildInfo.BuildNumber = -1;
                }
            }
            else
            {
                buildInfo.MilestoneCodename = "N/A";
                buildInfo.BuildJob          = "N/A";
                buildInfo.SourceCodeVersion = "N/A";
                buildInfo.BuildNumber       = -1;
            }

            Debug.Log("BuildInfo: \n" + buildInfo);

            var directoryName = Path.GetDirectoryName(BuildInfoFullPath);
            if (!Directory.Exists(directoryName))
            {
                Directory.CreateDirectory(directoryName);
            }

            AssetDatabase.CreateAsset(buildInfo, BuildInfoFullPath);
            AssetDatabase.ImportAsset(BuildInfoFullPath, ImportAssetOptions.ForceUpdate | ImportAssetOptions.ForceSynchronousImport);
        }