protected virtual void WriteSteps(CustomFileWriter writer) { // using (writer.WriteBlock("- task: DownloadBuildArtifacts@0")) // { // // writer.WriteLine("displayName: Download Artifacts"); // using (writer.WriteBlock("inputs:")) // { // writer.WriteLine($"artifactName: {Name}"); // writer.WriteLine($"downloadPath: {Path.SingleQuote()}"); // } // } using (writer.WriteBlock("- task: CmdLine@2")) { var arguments = $"{InvokedTargets.JoinSpace()} --skip"; if (PartitionName != null) { arguments += $" --{ParameterService.GetParameterDashedName(PartitionName)} $(System.JobPositionInPhase)"; } using (writer.WriteBlock("inputs:")) { writer.WriteLine($"script: './{BuildCmdPath} {arguments}'"); } if (Imports.Count > 0) { using (writer.WriteBlock("env:")) { Imports.ForEach(x => writer.WriteLine($"{x.Key}: {x.Value}")); } } } PublishArtifacts.ForEach(x => { using (writer.WriteBlock("- task: PublishBuildArtifacts@1")) { using (writer.WriteBlock("inputs:")) { writer.WriteLine($"artifactName: {x.Split('/').Last()}"); writer.WriteLine($"pathtoPublish: {x.SingleQuote()}"); } } }); }
public virtual void WriteSteps(CustomFileWriter writer) { using (writer.WriteBlock("steps")) { var arguments = $"{InvokedTargets.JoinSpace()} --skip"; if (Partition != null) { arguments += $" --{ParameterService.GetParameterDashedName(PartitionName)} {Partition.Part}"; } using (writer.WriteBlock("exec")) { writer.WriteLine($"path = {BuildCmdPath.DoubleQuote()}"); writer.WriteLine($"arguments = {arguments.DoubleQuote()}"); } } }
public virtual void WriteSteps(CustomFileWriter writer) { using (writer.WriteBlock("steps")) { var arguments = $"{InvokedTargets.JoinSpace()} --skip"; if (Partition != null) { arguments += $" --{ParameterService.GetParameterDashedName(PartitionName)} {Partition.Part}"; } using (writer.WriteBlock("exec")) { var path = Platform == TeamCityAgentPlatform.Windows ? BuildCmdPath : BuildCmdPath.Replace(".cmd", ".sh"); writer.WriteLine($"path = {path.DoubleQuote()}"); writer.WriteLine($"arguments = {arguments.DoubleQuote()}"); } } }
public virtual void WriteSteps(CustomFileWriter writer) { using (writer.WriteBlock("steps")) { var arguments = $"{InvokedTargets.JoinSpace()} --skip"; if (Partition != null) { arguments += $" --{ParameterService.GetParameterDashedName(PartitionName)} {Partition.Part}"; } if (Platform == TeamCityAgentPlatform.Unix) { WriteExecStep(writer, arguments); } else { WritePowerShellStep(writer, arguments); } } }
protected virtual void WriteSteps(CustomFileWriter writer) { // using (writer.WriteBlock("- task: DownloadBuildArtifacts@0")) // { // // writer.WriteLine("displayName: Download Artifacts"); // using (writer.WriteBlock("inputs:")) // { // writer.WriteLine($"artifactName: {Name}"); // writer.WriteLine($"downloadPath: {Path.SingleQuote()}"); // } // } using (writer.WriteBlock("- task: PowerShell@2")) { var arguments = $"{InvokedTargets.JoinSpace()} --skip"; if (PartitionName != null) { arguments += $" --{ParameterService.GetParameterDashedName(PartitionName)} $(System.JobPositionInPhase)"; } using (writer.WriteBlock("inputs:")) { writer.WriteLine($"filePath: {ScriptPath.SingleQuote()}"); writer.WriteLine($"arguments: {arguments.SingleQuote()}"); } } PublishArtifacts.ForEach(x => { using (writer.WriteBlock("- task: PublishBuildArtifacts@1")) { using (writer.WriteBlock("inputs:")) { writer.WriteLine($"artifactName: {x}"); writer.WriteLine($"pathtoPublish: {StringExtensions.SingleQuote(x)}"); } } }); }
public virtual void WriteSteps(CustomFileWriter writer) { using (writer.WriteBlock("steps")) { var arguments = $"{InvokedTargets.JoinSpace()} --skip"; if (Partition != null) { arguments += $" --{ParameterService.GetParameterDashedName(PartitionName)} {Partition.Part}"; } void WriteConditionalExec(string path, string condition, string platform) { using (writer.WriteBlock("exec")) { writer.WriteLine($"path = {path.DoubleQuote()}"); writer.WriteLine($"arguments = {arguments.DoubleQuote()}"); writer.WriteLine($"conditions {{ {condition}(\"teamcity.agent.jvm.os.name\", {platform.DoubleQuote()}) }}"); } } WriteConditionalExec(BuildCmdPath, "contains", "Windows"); WriteConditionalExec(BuildCmdPath.Replace(".cmd", ".sh"), "doesNotContain", "Windows"); } }
public override void Write(CustomFileWriter writer) { using (writer.WriteBlock("- task: CmdLine@2")) { var arguments = $"{InvokedTargets.JoinSpace()} --skip"; if (PartitionName != null) { arguments += $" --{ParameterService.GetParameterDashedName(PartitionName)} $(System.JobPositionInPhase)"; } using (writer.WriteBlock("inputs:")) { writer.WriteLine($"script: './{BuildCmdPath} {arguments}'"); } if (Imports.Count > 0) { using (writer.WriteBlock("env:")) { Imports.ForEach(x => writer.WriteLine($"{x.Key}: {x.Value}")); } } } }
public static IEnumerable <string> GetRelevantCompletionItems( string words, IReadOnlyDictionary <string, string[]> completionItems) { completionItems = new Dictionary <string, string[]>(completionItems.ToDictionary(x => x.Key, x => x.Value), StringComparer.OrdinalIgnoreCase).AsReadOnly(); var suggestedItems = new List <string>(); var parts = words.Split(separator: ' '); var currentWord = parts.Last() != string.Empty ? parts.Last() : null; var parameters = parts.Where(ParameterService.IsParameter).Select(ParameterService.GetParameterMemberName).ToList(); var lastParameter = parameters.LastOrDefault(); void AddParameters() { var useDashes = currentWord == null || currentWord.TrimStart('-').Length == 0 || currentWord.StartsWith("--"); var items = completionItems.Keys .Except(parameters, StringComparer.InvariantCultureIgnoreCase) .Select(x => useDashes ? $"--{ParameterService.GetParameterDashedName(x)}" : $"-{x}"); AddItems(items); } void AddTargetsOrValues(string parameter) { var passedItems = parts .Reverse() .TakeWhile(x => !ParameterService.IsParameter(x)) .Select(ParameterService.GetParameterMemberName); var items = completionItems.GetValueOrDefault(parameter)?.Except(passedItems, StringComparer.OrdinalIgnoreCase) ?? new string[0]; if (parameter.EqualsOrdinalIgnoreCase(Constants.InvokedTargetsParameterName)) { items = items.Select(x => x.SplitCamelHumpsWithSeparator("-", Constants.KnownWords)); } AddItems(items); } void AddItems(IEnumerable <string> items) { foreach (var item in items) { if (currentWord == null) { suggestedItems.Add(item); } else if (item.StartsWithOrdinalIgnoreCase(currentWord)) { var normalizedItem = item.ReplaceRegex(currentWord, x => currentWord, RegexOptions.IgnoreCase); if (normalizedItem != item) { var letters = currentWord.Where(char.IsLetter).ToList(); if (letters.All(char.IsUpper)) { normalizedItem = normalizedItem.ToUpperInvariant(); } else if (letters.All(char.IsLower)) { normalizedItem = normalizedItem.ToLowerInvariant(); } } suggestedItems.Add(normalizedItem); } } } if (lastParameter == null) { AddTargetsOrValues(Constants.InvokedTargetsParameterName); } else if (currentWord != lastParameter) { AddTargetsOrValues(lastParameter); } if (currentWord == null || ParameterService.IsParameter(currentWord)) { AddParameters(); } return(suggestedItems); }