Пример #1
0
        public void ExtendWithDiscoveries(Suite suite)
        {
            var scriptsDir = suite.SuiteRoot.GetChildDirectory("scripts");

            if (scriptsDir != null)
            {
                BuildScriptMappings mappings;
                if (suite.HasParameters("build-scripts"))
                {
                    mappings = suite.GetParameters <BuildScriptMappings>("build-scripts");
                }
                else
                {
                    mappings = new BuildScriptMappings();
                    suite.AddParameters("build-scripts", mappings);
                }

                foreach (var scriptFile in scriptsDir.Files)
                {
                    var ext = Path.GetExtension(scriptFile);
                    if (ext != null && ext.ToLowerInvariant() == ".py")
                    {
                        var script = new SimplePythonBuildScript(
                            new SuiteRelativePath(Path.Combine("scripts", scriptFile)),
                            suite.SuiteRoot);

                        mappings.Add(script.SourceSetName, script);

                        log.DebugFormat("Discovered build script: {0}", script.Name);
                    }
                }
            }
        }
Пример #2
0
        public void ExtendWithDiscoveries(Suite suite)
        {           
            var scriptsDir = suite.SuiteRoot.GetChildDirectory("scripts");
            if (scriptsDir != null)
            {
                BuildScriptMappings mappings;
                if (suite.HasParameters("build-scripts"))
                {
                    mappings = suite.GetParameters<BuildScriptMappings>("build-scripts");
                }
                else 
                {
                    mappings = new BuildScriptMappings();
                    suite.AddParameters("build-scripts", mappings);
                }

                foreach (var scriptFile in scriptsDir.Files)
                {
                    var ext = Path.GetExtension(scriptFile);
                    if (ext != null && ext.ToLowerInvariant() == ".py")
                    {
                        var script = new SimplePythonBuildScript(
                            new SuiteRelativePath(Path.Combine("scripts", scriptFile)),
                            suite.SuiteRoot);

                        mappings.Add(script.SourceSetName, script);

                        log.DebugFormat("Discovered build script: {0}", script.Name);
                    }
                }
            }
        }
 public PythonScriptedPostProcessorFactory(Suite suite, IPostProcessorScriptRunner scriptRunner)
 {
     this.scriptRunner = scriptRunner;
     if (suite.HasParameters("post-processor-scripts"))
         scriptMappings = suite.GetParameters<PostProcessorScriptMappings>("post-processor-scripts");
     else
         scriptMappings = new PostProcessorScriptMappings();
 }
Пример #4
0
        /// <summary>
        /// Runs the command
        /// </summary>
        /// <param name="suite">The current suite model the command is applied to</param>
        /// <param name="parameters">Parameters given to the command (in unprocessed form)</param>
        public bool Run(Suite suite, string[] parameters)
        {
            int  effectiveLength = parameters.Length;
            bool dumpMode        = false;
            bool dumpDepsMode    = false;

            if (effectiveLength > 0)
            {
                dumpMode     = parameters[effectiveLength - 1] == "--dump";
                dumpDepsMode = parameters[effectiveLength - 1] == "--dump-deps";
            }

            if (dumpMode || dumpDepsMode)
            {
                effectiveLength--;
            }

            if (effectiveLength < 2)
            {
                string targetStr;
                if (effectiveLength == 0)
                {
                    targetStr = String.Empty;
                }
                else
                {
                    targetStr = parameters[0];
                }

                try
                {
                    lastBuildTarget = targetStr;
                    var target = targetParser.ParseTarget(targetStr);

                    var allProjects = target.Projects.Concat(target.TestProjects).ToList();

                    var tests        = suite.HasParameters("test") ? suite.GetParameters <Tests>("test") : new Tests();
                    var buildOutputs = RunWithProjects(allProjects, dumpMode, dumpDepsMode).ToList();

                    if (buildOutputs.Any())
                    {
                        return(RunTests(tests, target.TestProjects, buildOutputs));
                    }
                    else
                    {
                        return(false);
                    }
                }
                catch (ArgumentException ex)
                {
                    throw new InvalidCommandParameterException("build", ex.Message);
                }
            }
            else
            {
                throw new InvalidCommandParameterException("test", "Test must be called without any parameters");
            }
        }
        public PythonScriptedPostProcessorFactory(Suite suite, IPythonScriptedBuilderFactory builderFactory)
        {
            this.builderFactory = builderFactory;

            if (suite.HasParameters("post-processor-scripts"))
                scriptMappings = suite.GetParameters<PostProcessorScriptMappings>("post-processor-scripts");
            else
                scriptMappings = new PostProcessorScriptMappings();
        }
        public PythonScriptedProjectBuilderFactory(Suite suite, ISourceSetFingerprintFactory fingerprintFactory, IProjectBuildScriptRunner scriptRunner)
        {
            if (suite.HasParameters("build-scripts"))
                buildScriptMappings = suite.GetParameters<BuildScriptMappings>("build-scripts");
            else
                buildScriptMappings = new BuildScriptMappings();

            this.fingerprintFactory = fingerprintFactory;
            this.scriptRunner = scriptRunner;
        }
        public PythonScriptedProjectBuilderFactory(Suite suite, IPythonScriptedBuilderFactory builderFactory, ICoreBuilderFactory coreBuilderFactory)
        {
            if (suite.HasParameters("build-scripts"))
                buildScriptMappings = suite.GetParameters<BuildScriptMappings>("build-scripts");
            else
                buildScriptMappings = new BuildScriptMappings();

            this.builderFactory = builderFactory;
            this.coreBuilderFactory = coreBuilderFactory;
        }
Пример #8
0
 /// <summary>
 /// Gets the <see cref="RepositoryPatternCollection"/> defined in the suite
 /// </summary>
 /// <param name="suite">The suite</param>
 /// <returns>Always returns a valid pattern collection, but it can be empty</returns>
 public static RepositoryPatternCollection GetFSRepositories(this Suite suite)
 {
     if (suite.HasParameters("fs-repositories"))
     {
         return(suite.GetParameters <RepositoryPatternCollection>("fs-repositories"));
     }
     else
     {
         return(RepositoryPatternCollection.Empty);
     }
 }
Пример #9
0
        private MSBuildRunner BuildSolution(SlnBuilder slnBuilder)
        {
            // Building the solution
            MSBuildParameters msbuildParams;

            if (suite.HasParameters("msbuild"))
            {
                msbuildParams = suite.GetParameters <MSBuildParameters>("msbuild");
            }
            else
            {
                msbuildParams = new MSBuildParameters();
            }

            var msbuild = msBuildRunnerFactory.CreateMSBuildRunner(
                slnBuilder,
                new TargetRelativePath(String.Empty, slnBuilder.Uid + ".sln"),
                msbuildParams.Version);

            return(msbuild);
        }
Пример #10
0
 public PythonScriptedPostProcessorFactory(Suite suite, IPostProcessorScriptRunner scriptRunner)
 {
     this.scriptRunner = scriptRunner;
     if (suite.HasParameters("post-processor-scripts"))
     {
         scriptMappings = suite.GetParameters <PostProcessorScriptMappings>("post-processor-scripts");
     }
     else
     {
         scriptMappings = new PostProcessorScriptMappings();
     }
 }
Пример #11
0
        public PythonScriptedPostProcessorFactory(Suite suite, IPythonScriptedBuilderFactory builderFactory)
        {
            this.builderFactory = builderFactory;

            if (suite.HasParameters("post-processor-scripts"))
            {
                scriptMappings = suite.GetParameters <PostProcessorScriptMappings>("post-processor-scripts");
            }
            else
            {
                scriptMappings = new PostProcessorScriptMappings();
            }
        }
        public PythonScriptedProjectBuilderFactory(Suite suite, ISourceSetFingerprintFactory fingerprintFactory, IProjectBuildScriptRunner scriptRunner)
        {
            if (suite.HasParameters("build-scripts"))
            {
                buildScriptMappings = suite.GetParameters <BuildScriptMappings>("build-scripts");
            }
            else
            {
                buildScriptMappings = new BuildScriptMappings();
            }

            this.fingerprintFactory = fingerprintFactory;
            this.scriptRunner       = scriptRunner;
        }
Пример #13
0
        public PythonScriptedProjectBuilderFactory(Suite suite, IPythonScriptedBuilderFactory builderFactory, ICoreBuilderFactory coreBuilderFactory)
        {
            if (suite.HasParameters("build-scripts"))
            {
                buildScriptMappings = suite.GetParameters <BuildScriptMappings>("build-scripts");
            }
            else
            {
                buildScriptMappings = new BuildScriptMappings();
            }

            this.builderFactory     = builderFactory;
            this.coreBuilderFactory = coreBuilderFactory;
        }
Пример #14
0
        /// <summary>
        /// Runs the command
        /// </summary>
        /// <param name="suite">The current suite model the command is applied to</param>
        /// <param name="parameters">Parameters given to the command (in unprocessed form)</param>
        public bool Run(Suite suite, string[] parameters)
        {
            int effectiveLength = parameters.Length;
            bool dumpMode = false;
            bool dumpDepsMode = false;

            if (effectiveLength > 0)
            {
                dumpMode = parameters[effectiveLength - 1] == "--dump";
                dumpDepsMode = parameters[effectiveLength - 1] == "--dump-deps";
            }

            if (dumpMode || dumpDepsMode)
                effectiveLength--;

            if (effectiveLength < 2)
            {
                string targetStr;
                if (effectiveLength == 0)
                    targetStr = String.Empty;
                else
                    targetStr = parameters[0];

                try
                {
                    lastBuildTarget = targetStr;
                    var target = targetParser.ParseTarget(targetStr);

                    var projects = target.TestProjects.ToList();

                    var tests = suite.HasParameters("test") ? suite.GetParameters<Tests>("test") : new Tests();
                    var buildOutputs = RunWithProjects(projects, dumpMode, dumpDepsMode).ToList();

                    if (buildOutputs.Any())
                        return RunTests(tests, projects, buildOutputs);
                    else
                        return false;
                }
                catch (ArgumentException ex)
                {
                    throw new InvalidCommandParameterException("build", ex.Message);
                }
            }
            else
            {
                throw new InvalidCommandParameterException("test", "Test must be called without any parameters");
            }
        }