示例#1
0
        /// <summary>
        /// 执行构建流程
        /// </summary>
        /// <returns>如果成功返回TRUE,否则返回FALSE</returns>
        public static bool Run(List <IBuildTask> pipeline, BuildContext context)
        {
            if (pipeline == null)
            {
                throw new ArgumentNullException("pipeline");
            }
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            bool succeed = true;

            for (int i = 0; i < pipeline.Count; i++)
            {
                IBuildTask task = pipeline[i];
                try
                {
                    var taskAttribute = task.GetType().GetCustomAttribute <TaskAttribute>();
                    Log($"---------------------------------------->{taskAttribute.Desc}");
                    task.Run(context);
                }
                catch (Exception e)
                {
                    Debug.LogError($"Build task {task.GetType().Name} failed !");
                    Debug.LogError($"Build error : {e}");
                    succeed = false;
                    break;
                }
            }

            // 返回运行结果
            return(succeed);
        }
        public static void Run(List <IBuildTask> pipeline, BuildContext context)
        {
            if (pipeline == null)
            {
                throw new ArgumentNullException("pipeline");
            }
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            for (int i = 0; i < pipeline.Count; i++)
            {
                IBuildTask task = pipeline[i];
                try
                {
                    task.Run(context);
                }
                catch (Exception e)
                {
                    throw new Exception($"Build task {task.GetType().Name} failed : {e}");
                }
            }
        }