public static GlobalConfiguration GlobalConfiguration()
        {
            // Global configuration

            GlobalConfiguration globalConfig = new GlobalConfiguration(TestModels.GlobalJobConfiguration());

            globalConfig.AddStep(TestModels.GlobalCheckoutStep());
            globalConfig.AddStep(TestModels.GlobalDockerStep());
            globalConfig.AddStep(TestModels.GlobalCleanStep());

            return(globalConfig);
        }
 private void AddStepsToGlobalConfig()
 {
     if (_stepsBuilder != null)
     {
         _stepsBuilder.Build();
         foreach (Step s in _stepsBuilder.Collect())
         {
             _globalConfiguration.AddStep(s);
         }
     }
 }
        public static void Main(string[] args)
        {
            Pipeline pipe = new Pipeline("My pipe", TriggerType.Push);

            // Global configuration
            JobConfiguration jobConfig = new JobConfiguration(OperatingSystem.UbuntuLatest);

            jobConfig.AddEnvVar("MYVAR1", "/usr/share/java");
            jobConfig.AddEnvVar("MYVAR2", "/usr/share/maven");
            GlobalConfiguration globalConfig = new GlobalConfiguration(jobConfig);
            Step checkoutStep      = new RemoteAction("checkout", "actions/checkout@v2");
            Step pullDockerImgStep = new RemoteAction("Pull Docker Image", "docker://cfeicommon/maven-jdk8-fx:latest");

            globalConfig.AddStep(checkoutStep);
            globalConfig.AddStep(pullDockerImgStep);

            // Individual Steps
            ShellCommand compileStep = new ShellCommand("Compile TANKS", "mvn compile");

            compileStep.WorkDirectory = "./TANKS";


            ShellCommand unitTestStep = new ShellCommand("Execute unit tests",
                                                         "echo \"Running mvn verify\"",
                                                         "echo \"$MYVAR1 $MYVAR2\"",
                                                         "mvn verify");

            unitTestStep.WorkDirectory = "./TANKS";


            ShellCommand packageStep = new ShellCommand("Package TANKS", "mvn package");

            packageStep.WorkDirectory = "./TANKS";


            ShellCommand installStep = new ShellCommand("Install Tanks", "mvn install");

            installStep.WorkDirectory = "./TANKS";


            // Individual Jobs
            Job compileJob = new Job("compile", "Compile TANKS", jobConfig, compileStep);

            Job unitTestJob = new Job("unit-test", "Unit test TANKS", jobConfig, unitTestStep);

            unitTestJob.AddDependency(compileJob);

            Job packageJob = new Job("package", "Package TANKS", jobConfig, packageStep);

            packageJob.AddDependency(unitTestJob);

            Job installJob = new Job("install", "Install TANKS", jobConfig, installStep);

            installJob.AddDependency(packageJob);

            pipe.AddJob(compileJob);
            pipe.AddJob(unitTestJob);
            pipe.AddJob(packageJob);
            pipe.AddJob(installJob);

            Console.WriteLine("Pipeline was created");
        }