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 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(); }
/// <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; }
/// <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); } }
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); }
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(); } }
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; }
/// <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"); } }