Example #1
0
        public BuildSourceMap Get(string sourceKey)
        {
            if (IISStore == null)
            {
                IISStore = System.Web.Configuration.WebConfigurationManager.AppSettings["IISCI.Store"];
            }


            lock (Instance) {
                var existingList = IISStore + "\\source-map.json";

                var list = JsonStorage.ReadFileOrDefault <List <BuildSourceMap> >(existingList);
                List.Clear();
                List.AddRange(list);

                var map = List.FirstOrDefault(x => x.SourceKey == sourceKey);
                if (map == null)
                {
                    map = new BuildSourceMap {
                        Id        = "Source-" + (List.Count + 1),
                        SourceKey = sourceKey
                    };
                    List.Add(map);
                    JsonStorage.WriteFile(List, existingList);
                }
                return(map);
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            var dictionary = args
                             .Select(x => x.Split(new char[] { '=' }, 2).Select(s => s.Trim()))
                             .Where(x => x.Count() == 2)
                             .ToDictionary(x => x.FirstOrDefault(), x => x.LastOrDefault());



            string id          = dictionary["id"];
            string configPath  = dictionary["config"].Trim('"');
            string buildFolder = dictionary["build"].Trim('"');

            bool   redeploy = false;
            string v;

            if (dictionary.TryGetValue("redeploy", out v))
            {
                redeploy = v?.Equals("yes", StringComparison.OrdinalIgnoreCase) ?? false;
            }



            string configXDT = null;

            if (args.Length > 2)
            {
                configXDT = args[2];
            }

            BuildConfig config = JsonStorage.ReadFile <BuildConfig>(configPath);

            config.BuildFolder = buildFolder;

            var lastBuild = Execute(config, redeploy);

            JsonStorage.WriteFile(lastBuild, config.BuildResult);

            if (lastBuild.Success)
            {
                Console.WriteLine(lastBuild.Log);
            }
            else
            {
                Console.Error.WriteLine(lastBuild.Error ?? "Something went wrong...");
                Environment.ExitCode = lastBuild.ExitCode;
            }
        }
Example #3
0
        public ActionResult UpdateBuildConfig(string id, BuildConfig model)
        {
            string path = GetConfigPath(id);

            SaveConfig(id, path, model, false);

            string lastBuildFile = model.BuildResult;
            var    lastBuild     = JsonStorage.ReadFileOrDefault <LastBuild>(lastBuildFile);

            if (lastBuild == null)
            {
                lastBuild = new LastBuild();
            }
            lastBuild.Error      = "Config changed";
            lastBuild.LastResult = null;
            JsonStorage.WriteFile(lastBuild, lastBuildFile);
            return(Json(model));
        }
Example #4
0
        private void SaveConfig(string id, string path, BuildConfig model, bool onlyIfModified = true)
        {
            bool modified = false;

            if (model.SiteId != id)
            {
                model.SiteId = id;
                modified     = true;
            }
            if (string.IsNullOrWhiteSpace(model.TriggerKey))
            {
                model.TriggerKey = CreateBuildKey();
                modified         = true;
            }

            string bf = model.BuildFolder;

            model.BuildFolder = IISStore + "\\sites\\" + BuildSourceMaps.Instance.Get(model.BuildSourceKey).Id;
            if (bf != model.BuildFolder)
            {
                modified = true;
            }

            string br = model.BuildResult;

            model.BuildResult = IISStore + "\\result\\" + id + ".json";

            if (onlyIfModified)
            {
                if (!modified)
                {
                    return;
                }
            }
            JsonStorage.WriteFile(model, path);
        }
Example #5
0
 public ActionResult UpdateSettings(SettingsModel model)
 {
     JsonStorage.WriteFile(model, SettingsPath);
     return(Content("\"Ok\""));
 }