public override void Write(CustomFileWriter writer) { writer.WriteLine($"- name: Run '{Command}'"); writer.WriteLine($" run: {Command}"); if (Imports.Count > 0) { using (writer.Indent()) { writer.WriteLine("env:"); using (writer.Indent()) { Imports.ForEach(x => writer.WriteLine($"{x.Key}: {x.Value}")); } } } }
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()}"); } } }
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 override void Write(CustomFileWriter writer) { if (Cpu != null || Memory != null) { using (writer.WriteBlock($"resources")) { if (Cpu != null) { writer.WriteLine($"cpu = {Cpu}"); } if (Memory != null) { writer.WriteLine($"memory = {Memory}"); } } } }
public override void Write(CustomFileWriter writer) { writer.WriteLine($"{Name}:"); using (writer.Indent()) { writer.WriteLine($"strategy:"); using (writer.Indent()) { writer.WriteLine($"fail-fast: false"); writer.WriteLine($"matrix:"); using (writer.Indent()) { var images = string.Join(", ", Images.Select(image => image.GetValue().Replace(".", "_"))); writer.WriteLine($"os: [{images}]"); } } writer.WriteLine($"runs-on: ${{{{ matrix.os }}}}"); writer.WriteLine("steps:"); using (writer.Indent()) { foreach (var step in Steps) { step.Write(writer); } } } }
public override void Write(CustomFileWriter writer) { using (writer.WriteBlock("project")) { if (Description != null) { writer.WriteLine($"description = {Description}"); } writer.WriteLine($"vcsRoot({VcsRoot.Id})"); writer.WriteLine(); foreach (var buildType in BuildTypes) { writer.WriteLine($"buildType({buildType.Id})"); } writer.WriteLine(); writer.WriteLine($"buildTypesOrder = arrayListOf({BuildTypes.Select(x => x.Id).JoinComma()})"); writer.WriteLine(); if (Parameters.Any()) { using (writer.WriteBlock("params")) { foreach (var parameter in Parameters) { parameter.Write(writer); } } } } }
public virtual void WriteArtifacts(CustomFileWriter writer) { if (!ArtifactRules?.Any() ?? true) { return; } writer.WriteLine("artifactRules = \"\"\""); using (writer.Indent()) { foreach (var artifactRule in ArtifactRules) { writer.WriteLine(artifactRule); } } writer.WriteLine("\"\"\".trimIndent()"); }
public override void Write(CustomFileWriter writer) { if (Only.Length > 0) { using (writer.WriteBlock("only:")) { Only.ForEach(x => writer.WriteLine($"- {x}")); } } if (Except.Length > 0) { using (writer.WriteBlock("except:")) { Except.ForEach(x => writer.WriteLine($"- {x}")); } } }
public void Write(CustomFileWriter writer, string parameters) { using (writer.WriteBlock( $"- pwsh: {ScriptPath} {InvokedTargets.JoinSpace()} --skip {parameters}".TrimEnd() )) { writer.WriteLine($"displayName: {DisplayName.SingleQuote()}"); } }
public override void Write(CustomFileWriter writer) { base.Write(writer); using (writer.Indent()) { if (!string.IsNullOrWhiteSpace(Shell)) { writer.WriteLine($"shell: {Shell}"); } writer.WriteLine($"run: |"); using (writer.Indent()) { foreach (var line in Run.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries)) { writer.WriteLine(line.Trim()); } } } }
public override void Write(CustomFileWriter writer) { writer.WriteLine("workflow_dispatch:"); using (writer.Indent()) { writer.WriteLine("inputs:"); using (writer.Indent()) { foreach (var input in Inputs) { writer.WriteLine($"{input}:"); using (writer.Indent()) { writer.WriteLine($"description: {input.SplitCamelHumpsWithSeparator(" ", Constants.KnownWords).DoubleQuote()}"); } } } } }
public override void Write(CustomFileWriter writer) { if (Disabled) { writer.WriteLine("none"); return; } if (Batch.HasValue) { writer.WriteLine($"batch: {Batch.ToString().ToLowerInvariant()}"); } if (AutoCancel.HasValue) { writer.WriteLine($"autoCancel: {AutoCancel.ToString().ToLowerInvariant()}"); } if (BranchesInclude.Length > 0 || BranchesExclude.Length > 0) { using (writer.WriteBlock("branches:")) { WriteInclusionsAndExclusions(writer, BranchesInclude, BranchesExclude); } } if (TagsInclude.Length > 0 || TagsExclude.Length > 0) { using (writer.WriteBlock("tags:")) { WriteInclusionsAndExclusions(writer, TagsInclude, TagsExclude); } } if (PathsInclude.Length > 0 || PathsExclude.Length > 0) { using (writer.WriteBlock("paths:")) { WriteInclusionsAndExclusions(writer, PathsInclude, PathsExclude); } } }
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 override void Write(CustomFileWriter writer) { using (writer.WriteBlock($"stage('{Name}')")) { writer.WriteLine("failFast true"); using (writer.WriteBlock($"parallel")) { Stages.ForEach(x => x.Write(writer)); } } }
private static void WriteInclusionsAndExclusions( CustomFileWriter writer, IReadOnlyCollection <string> inclusions, IReadOnlyCollection <string> exclusions) { if (inclusions.Count > 0) { using (writer.WriteBlock("include:")) { inclusions.ForEach(x => writer.WriteLine($"- {x}")); } } if (exclusions.Count > 0) { using (writer.WriteBlock("exclude:")) { exclusions.ForEach(x => writer.WriteLine($"- {x}")); } } }
public override void Write(CustomFileWriter writer) { using (writer.WriteBlock($"- stage: {Name}")) { writer.WriteLine($"displayName: {DisplayName.SingleQuote()}"); writer.WriteLine($"dependsOn: [ {Dependencies.Select(x => x.Name).JoinComma()} ]"); if (Image != null) { using (writer.WriteBlock("pool:")) { writer.WriteLine($"vmImage: {Image.Value.GetValue().SingleQuote()}"); } } using (writer.WriteBlock("jobs:")) { Jobs.ForEach(x => x.Write(writer)); } } }
protected override void WriteSteps(CustomFileWriter writer) { DownloadArtifacts.ForEach(x => { using (writer.WriteBlock("- task: DownloadBuildArtifacts@0")) { writer.WriteLine("displayName: Download Artifacts"); using (writer.WriteBlock("inputs:")) { string[] parts = x.Split('/'); var path = parts.SkipLast(1).Join('/').SingleQuote(); writer.WriteLine("buildType: 'current'"); writer.WriteLine("downloadType: 'single'"); writer.WriteLine($"artifactName: {parts.Last()}"); writer.WriteLine($"downloadPath: {path}"); } } }); base.WriteSteps(writer); }
public override void Write(CustomFileWriter writer) { using (writer.WriteBlock($"container({Image.DoubleQuote()})")) { Resources.Write(writer); using (writer.WriteBlock("shellScript")) { writer.WriteLine($"content = {$"./{BuildScript} {InvokedTargets.JoinSpace()}".DoubleQuote()}"); } } }
public override void Write(CustomFileWriter writer) { writer.WriteLine($"name: {Name}"); writer.WriteLine(); if (ShortTriggers.Length > 0) { writer.WriteLine($"on: [{ShortTriggers.Select(x => x.GetValue().ToLowerInvariant()).JoinComma()}]"); } else { writer.WriteLine("on:"); using (writer.Indent()) { DetailedTriggers.ForEach(x => x.Write(writer)); } } writer.WriteLine(); writer.WriteLine("jobs:"); using (writer.Indent()) { Jobs.ForEach(x => x.Write(writer)); } }
public override void Write(CustomFileWriter writer) { writer.WriteLine($"{Kind.GetValue()}:"); void WriteValue(string value) => writer.WriteLine($"- {value.SingleQuoteIfNeeded('*', '!')}"); using (writer.Indent()) { if (Branches.Length > 0) { writer.WriteLine("branches:"); using (writer.Indent()) { Branches.ForEach(WriteValue); } } if (BranchesIgnore.Length > 0) { writer.WriteLine("branches-ignore:"); using (writer.Indent()) { BranchesIgnore.ForEach(WriteValue); } } if (Tags.Length > 0) { writer.WriteLine("tags:"); using (writer.Indent()) { Tags.ForEach(WriteValue); } } if (TagsIgnore.Length > 0) { writer.WriteLine("tags-ignore:"); using (writer.Indent()) { TagsIgnore.ForEach(WriteValue); } } if (IncludePaths.Length > 0 || ExcludePaths.Length > 0) { writer.WriteLine("paths:"); using (writer.Indent()) { IncludePaths.ForEach(WriteValue); ExcludePaths.Select(x => $"!{x}").ForEach(WriteValue); } } } }
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 override void Write(CustomFileWriter writer) { using (writer.WriteBlock("schedule")) { using (writer.WriteBlock("schedulingPolicy = daily")) { writer.WriteLine("hour = 3"); } writer.WriteArray("branchFilter", BranchFilters); writer.WriteArray("triggerRules", TriggerRules); if (TriggerBuildAlways) { writer.WriteLine("triggerBuild = always()"); } writer.WriteLine("withPendingChangesOnly = false"); writer.WriteLine($"enableQueueOptimization = {EnableQueueOptimization.ToString().ToLowerInvariant()}"); writer.WriteLine("param(\"cronExpression_min\", \"3\")"); } }
public override void Write(CustomFileWriter writer) { writer.WriteLine($"- name: {GetStepName(StepName)}"); using (writer.Indent()) { if (!string.IsNullOrWhiteSpace(Id)) { writer.WriteLine($"id: {Id}"); } if (!string.IsNullOrWhiteSpace(If)) { writer.WriteLine($"if: {If}"); } if (Environment?.Any() == true) { writer.WriteLine("env:"); using (writer.Indent()) { Environment.ForEach(x => { writer.WriteLine($"{x.Key}: {x.Value}"); }); } } } }
public override void Write(CustomFileWriter writer) { writer.WriteLine("workflow_dispatch:"); using (writer.Indent()) { writer.WriteLine("inputs:"); using (writer.Indent()) { void WriteInput(string input, bool required) { writer.WriteLine($"{input}:"); using (writer.Indent()) { writer.WriteLine($"description: {input.SplitCamelHumpsWithSeparator(" ", Constants.KnownWords).DoubleQuote()}"); writer.WriteLine($"required: {required.ToString().ToLowerInvariant()}"); } } OptionalInputs.ForEach(x => WriteInput(x, required: false)); RequiredInputs.ForEach(x => WriteInput(x, required: true)); } } }
public override void Write(CustomFileWriter writer) { writer.WriteLine("- uses: actions/checkout@v2"); if (Submodules.HasValue || FetchDepth.HasValue) { using (writer.Indent()) { writer.WriteLine("with:"); using (writer.Indent()) { if (Submodules.HasValue) { writer.WriteLine($"submodules: {Submodules.ToString().ToLowerInvariant()}"); } if (FetchDepth.HasValue) { writer.WriteLine($"fetch-depth: {FetchDepth}"); } } } } }
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 (PartitionSize != null) { arguments += $" --partition $(System.JobPositionInPhase)/{PartitionSize}"; } 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 void WriteArray(this CustomFileWriter writer, string property, string[] values) { if (!values?.Any() ?? true) { return; } if (values.Length <= 1) { writer.WriteLine($"{property} = {values.Single().DoubleQuote()}"); return; } writer.WriteLine($"{property} = \"\"\""); using (writer.Indent()) { foreach (var value in values) { writer.WriteLine(value); } } writer.WriteLine("\"\"\""); }
public override void Write(CustomFileWriter writer) { using (writer.WriteBlock($"job({Name.DoubleQuote()})")) { if (VolumeSize != null) { writer.WriteLine($"volumeSize = {VolumeSize}"); writer.WriteLine(); } using (writer.WriteBlock("git")) { writer.WriteLine("depth = UNLIMITED_DEPTH"); if (RefSpec != null) { using (writer.WriteBlock("refSpec")) { RefSpec.ForEach(x => writer.WriteLine($"+{x.DoubleQuote()}")); } } } writer.WriteLine(); Container.Write(writer); if (Triggers.Any()) { writer.WriteLine(); using (writer.WriteBlock("startOn")) { Triggers.ForEach(x => x.Write(writer)); } } if (TimeoutInMinutes != null) { writer.WriteLine(); using (writer.WriteBlock("failOn")) { writer.WriteLine($"timeOut {{ timeOutInMinutes = {TimeoutInMinutes} }}"); } } } }
public override void Write(CustomFileWriter writer) { IEnumerable <string> arguments = new[] { $"name: '{Name}'" }; if (!string.IsNullOrWhiteSpace(Includes)) { arguments = arguments.Append($"includes: '{Includes}'"); } if (!string.IsNullOrWhiteSpace(Excludes)) { arguments = arguments.Append($"excludes: '{Excludes}'"); } writer.WriteLine($"stash {string.Join(", ", arguments)}"); }