public override void Write(CustomFileWriter writer)
        {
            using (writer.WriteBlock($"stage('{Name}')"))
            {
                Agent.Write(writer);

                using (writer.WriteBlock($"steps"))
                {
                    Unstashes?.ForEach(s => s.Write(writer));

                    if (IsCheckoutScm)
                    {
                        writer.WriteLine($"checkout scm");
                    }

                    if (!string.IsNullOrWhiteSpace(InvokedTarget))
                    {
                        if (Agent.AgentPlatform == JenkinsAgentPlatform.Unix)
                        {
                            writer.WriteLine($"sh 'sh ./build.sh --target {InvokedTarget} --skip'");
                        }
                        else if (Agent.AgentPlatform == JenkinsAgentPlatform.Windows)
                        {
                            writer.WriteLine($"bat './build.cmd --target {InvokedTarget} --skip'");
                        }
                    }

                    Stashes?.ForEach(s => s.Write(writer));
                }
            }
        }
        public override void Write(CustomFileWriter writer)
        {
            if (VariableGroups.Length > 0)
            {
                using (writer.WriteBlock("variables:"))
                {
                    VariableGroups.ForEach(x => writer.WriteLine($"- group: {x}"));
                    writer.WriteLine();
                }
            }

            if (VcsPushTrigger != null)
            {
                using (writer.WriteBlock("trigger:"))
                {
                    VcsPushTrigger.Write(writer);
                    writer.WriteLine();
                }
            }

            using (writer.WriteBlock("stages:"))
            {
                Stages.ForEach(x => x.Write(writer));
            }
        }
Beispiel #3
0
        public override void Write(CustomFileWriter writer)
        {
            var variableGroups = VariableGroups;

            if (variableGroups.Length > 0)
            {
                VariableGroups = Array.Empty <string>();
            }

            using (writer.WriteBlock("variables:"))
            {
                variableGroups.ForEach(x => writer.WriteLine($"- group: {x}"));
                Variables.ForEach(x =>
                {
                    using (writer.WriteBlock($"- name: {x.Name}"))
                    {
                        writer.WriteLine($"value: {x.Value}");
                    }
                });
                writer.WriteLine();
            }

            base.Write(writer);

            VariableGroups = variableGroups;
        }
Beispiel #4
0
        public override void Write(CustomFileWriter writer)
        {
            using (writer.WriteBlock($"- job: {Name}"))
            {
                writer.WriteLine($"displayName: {DisplayName.SingleQuote()}");
                writer.WriteLine($"dependsOn: [ {Dependencies.Select(x => x.Name).JoinCommaSpace()} ]");

                if (Image != null)
                {
                    using (writer.WriteBlock("pool:"))
                    {
                        writer.WriteLine($"vmImage: {Image.Value.GetValue().SingleQuote().SingleQuote()}");
                    }
                }

                if (Parallel > 1)
                {
                    using (writer.WriteBlock("strategy:"))
                    {
                        writer.WriteLine($"parallel: {Parallel}");
                    }
                }

                using (writer.WriteBlock("steps:"))
                {
                    Steps.ForEach(x => x.Write(writer));
                }
            }
        }
Beispiel #5
0
        public override void Write(CustomFileWriter writer)
        {
            using (writer.WriteBlock("project"))
            {
                if (Description != null)
                {
                    writer.WriteLine($"description = {Description}");
                }

                foreach (var buildType in BuildTypes)
                {
                    writer.WriteLine($"buildType({buildType.Id})");
                }
                writer.WriteLine();

                writer.WriteLine($"buildTypesOrder = arrayListOf({BuildTypes.Select(x => x.Id).JoinCommaSpace()})");
                writer.WriteLine();

                if (Parameters.Any())
                {
                    using (writer.WriteBlock("params"))
                    {
                        foreach (var parameter in Parameters)
                        {
                            parameter.Write(writer);
                        }
                    }
                }
            }
        }
Beispiel #6
0
        public override void Write(CustomFileWriter writer)
        {
            writer.WriteLine("#");
            if (Parameters.Length > 0)
            {
                using (writer.WriteBlock("parameters:"))
                {
                    foreach (var item in Parameters)
                    {
                        item.Write(writer);
                    }
                }
            }

            using (writer.WriteBlock("steps:"))
            {
#pragma warning disable CA1308
                var parameters = Parameters
                                 .Select(z => $"--{z.Name.ToLowerInvariant()} '${{{{ parameters.{z.Name} }}}}'")
                                 .ToArray()
                                 .JoinSpace();
#pragma warning restore CA1308

                foreach (var step in Steps)
                {
                    step.Write(writer, parameters);
                }
            }
        }
 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));
         }
     }
 }
Beispiel #8
0
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock("- task: PublishBuildArtifacts@1"))
     {
         using (writer.WriteBlock("inputs:"))
         {
             writer.WriteLine($"artifactName: {ArtifactName}");
             writer.WriteLine($"pathtoPublish: {PathToPublish.SingleQuote()}");
         }
     }
 }
Beispiel #9
0
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock("- task: Cache@2"))
     {
         using (writer.WriteBlock("inputs:"))
         {
             writer.WriteLine($"key: $(Agent.OS) | {KeyFiles.JoinComma()}");
             writer.WriteLine("restoreKeys: $(Agent.OS)");
             writer.WriteLine($"path: {Path}");
         }
     }
 }
Beispiel #10
0
        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()}");
                }
            }
        }
Beispiel #11
0
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock("- task: DownloadBuildArtifacts@0"))
     {
         // writer.WriteLine("displayName: Download Artifacts");
         using (writer.WriteBlock("inputs:"))
         {
             writer.WriteLine($"artifactName: {ArtifactName}");
             writer.WriteLine($"downloadPath: {DownloadPath.SingleQuote()}");
         }
     }
 }
        public override void Write(CustomFileWriter writer)
        {
            bool HasBranchFilter()
            => OnPushBranchIncludes != null ||
            OnPushBranchExcludes != null ||
            OnPushBranchRegexIncludes != null ||
            OnPushBranchRegexExcludes != null ||
            OnPushPathIncludes != null ||
            OnPushPathExcludes != null;

            bool HasPathFilter()
            => OnPushPathIncludes != null ||
            OnPushPathExcludes != null;

            if (OnPush != null ||
                HasBranchFilter() ||
                HasPathFilter())
            {
                using (writer.WriteBlock("gitPush"))
                {
                    if (OnPush != null)
                    {
                        writer.WriteLine($"enabled = {OnPush.ToString().ToLowerInvariant()}");
                    }

                    if (HasBranchFilter())
                    {
                        using (writer.WriteBlock("branchFilter"))
                        {
                            new[]
                            {
                                OnPushBranchIncludes?.Select(x => $"+{x.DoubleQuote()}"),
                                OnPushBranchExcludes?.Select(x => $"-{x.DoubleQuote()}"),
                                OnPushBranchRegexIncludes?.Select(x => $"+Regex({x.DoubleQuote()})"),
                                OnPushBranchRegexExcludes?.Select(x => $"-Regex({x.DoubleQuote()})")
                            }.WhereNotNull().SelectMany(x => x).ForEach(x => writer.WriteLine(x));
                        }
                    }

                    if (HasPathFilter())
                    {
                        using (writer.WriteBlock("pathFilter"))
                        {
                            new[]
                            {
                                OnPushPathIncludes?.Select(x => $"+{x.DoubleQuote()}"),
                                OnPushPathExcludes?.Select(x => $"-{x.DoubleQuote()}")
                            }.WhereNotNull().SelectMany(x => x).ForEach(x => writer.WriteLine(x));
                        }
                    }
                }
            }
        }
Beispiel #13
0
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock("- task: Cache@2"))
     {
         writer.WriteLine($"displayName: Cache ({Identifier})");
         using (writer.WriteBlock("inputs:"))
         {
             writer.WriteLine($"key: $(Agent.OS) | {Identifier} | {KeyFiles.JoinCommaSpace()}");
             writer.WriteLine($"restoreKeys: $(Agent.OS) | {Identifier}");
             writer.WriteLine($"path: {AdjustedPath}");
         }
     }
 }
Beispiel #14
0
        public override void Write(CustomFileWriter writer)
        {
            using (writer.WriteBlock("pipeline"))
            {
                Agent.Write(writer);
                Triggers.Write(writer);

                using (writer.WriteBlock("stages"))
                {
                    Stages.ForEach(x => x.Write(writer));
                }
            }
        }
        public override void Write(CustomFileWriter writer)
        {
            if (VcsPushTrigger != null)
            {
                using (writer.WriteBlock("trigger:"))
                {
                    VcsPushTrigger.Write(writer);
                    writer.WriteLine();
                }
            }

            using (writer.WriteBlock("stages:"))
            {
                Stages.ForEach(x => x.Write(writer));
            }
        }
        public override void Write(CustomFileWriter writer)
        {
            using (writer.WriteBlock("- checkout: self"))
            {
                if (IncludeLargeFileStorage.HasValue)
                {
                    writer.WriteLine($"lfs: {IncludeLargeFileStorage.Value}".ToLower());
                }

                if (InclueSubmodules.HasValue)
                {
                    writer.WriteLine($"submodules: {InclueSubmodules.Value}".ToLower());
                }

                if (FetchDepth.HasValue)
                {
                    writer.WriteLine($"fetchDepth: {FetchDepth.Value}");
                }

                if (Clean.HasValue)
                {
                    writer.WriteLine($"clean: {Clean.Value}".ToLower());
                }
            }
        }
Beispiel #17
0
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock("finishBuildTrigger"))
     {
         writer.WriteLine($"buildType = {$"${{{BuildType.Id}.id}}".DoubleQuote()}");
     }
 }
Beispiel #18
0
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock("stages:"))
     {
         Stages.ForEach(x => x.Write(writer));
     }
 }
Beispiel #19
0
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock($"artifacts({BuildType.Id})"))
     {
         writer.WriteArray("artifactRules", ArtifactRules);
     }
 }
Beispiel #20
0
 public virtual void WriteExecStep(CustomFileWriter writer, string arguments)
 {
     using (writer.WriteBlock("exec"))
     {
         writer.WriteLine("path = \"build.sh\"");
         writer.WriteLine($"arguments = \"{arguments}\"");
     }
 }
Beispiel #21
0
        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()}");
                }
            }
        }
Beispiel #22
0
        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()}");
                    }
                }
            });
        }
Beispiel #23
0
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock("vcs"))
     {
         writer.WriteArray("branchFilter", BranchFilters);
         writer.WriteArray("triggerRules", TriggerRules);
     }
 }
Beispiel #24
0
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock("vcs"))
     {
         writer.WriteLine($"branchFilter = {BranchFilter.DoubleQuote()}");
         writer.WriteLine($"triggerRules = {TriggerRules.DoubleQuote()}");
     }
 }
Beispiel #25
0
 public virtual void WriteExecStep(CustomFileWriter writer, string arguments)
 {
     using (writer.WriteBlock("exec"))
     {
         writer.WriteLine($"path = {BashScript.DoubleQuote()}");
         writer.WriteLine($"arguments = {arguments.DoubleQuote()}");
     }
 }
        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} }}");
                    }
                }
            }
        }
Beispiel #27
0
 public void Write(CustomFileWriter writer, string parameters)
 {
     using (writer.WriteBlock(
                $"- pwsh: {ScriptPath} {InvokedTargets.JoinSpace()} --skip {parameters}".TrimEnd()
                ))
     {
         writer.WriteLine($"displayName: {DisplayName.SingleQuote()}");
     }
 }
Beispiel #28
0
 public virtual void WritePowerShellStep(CustomFileWriter writer, string arguments)
 {
     using (writer.WriteBlock("powerShell"))
     {
         writer.WriteLine($"scriptMode = file {{ path = {PowerShellScript.DoubleQuote()} }}");
         writer.WriteLine($"param(\"jetbrains_powershell_scriptArguments\", {arguments.DoubleQuote()})");
         writer.WriteLine("noProfile = true");
     }
 }
 public override void Write(CustomFileWriter writer)
 {
     using (writer.WriteBlock("vcs"))
     {
         writer.WriteLine($"root({Root.Id})");
         if (ShowDependenciesChanges)
             writer.WriteLine("showDependenciesChanges = true");
     }
 }
Beispiel #30
0
        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}"));
                }
            }
        }