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); } }
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; } }
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)); }
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); }
public ActionResult UpdateSettings(SettingsModel model) { JsonStorage.WriteFile(model, SettingsPath); return(Content("\"Ok\"")); }