/// <inheritdoc/> protected override void ProcessOutputs(JavaScriptProject project, ProcessBuilder processBuilder) { base.ProcessOutputs(project, processBuilder); // This makes sure the folder the user profile is pointing to gets actually created processBuilder.AddOutputDirectory(DirectoryArtifact.CreateWithZeroPartialSealId(UserProfile(project, PathTable)), SealDirectoryKind.SharedOpaque); }
/// <nodoc/> public JavaScriptProjectSchedulingFailure(JavaScriptProject project, string failure) { Contract.RequiresNotNull(project); Contract.RequiresNotNullOrEmpty(failure); m_project = project; m_failure = failure; }
protected override Dictionary <string, string> DoCreateEnvironment(JavaScriptProject project) { var env = base.DoCreateEnvironment(project); // redirect the user profile so it points under the temp folder // use a different path for each build command, since there are tools that happen to generate the same file for, let's say, build and test // and we want to avoid double writes as much as possible env["USERPROFILE"] = UserProfile(project, PathTable).ToString(PathTable); return(env); }
/// <inheritdoc/> protected override void ConfigureProcessBuilder( ProcessBuilder processBuilder, JavaScriptProject project) { base.ConfigureProcessBuilder(processBuilder, project); // If dependencies are tracked with the shrinkwrap-deps file, then untrack everything under the Rush common temp folder, where all package // dependencies are placed if (m_resolverSettings.TrackDependenciesWithShrinkwrapDepsFile == true) { processBuilder.AddUntrackedDirectoryScope(DirectoryArtifact.CreateWithZeroPartialSealId(m_rushConfiguration.CommonTempFolder)); } }
/// <inheritdoc/> protected override void ProcessInputs( JavaScriptProject project, ProcessBuilder processBuilder) { base.ProcessInputs(project, processBuilder); // If dependencies should be tracked via the project-level shrinkwrap-deps file, then force an input // dependency on it if (m_resolverSettings.TrackDependenciesWithShrinkwrapDepsFile == true) { processBuilder.AddInputFile(FileArtifact.CreateSourceFile(project.ShrinkwrapDepsFile(PathTable))); } }
/// <summary> /// The location of the shrinkwrap-deps.json file for the given project /// </summary> /// <remarks> /// This is only applicable to a Rush-based build /// </remarks> public static AbsolutePath ShrinkwrapDepsFile(this JavaScriptProject project, PathTable pathTable) => project.TempFolder.Combine(pathTable, "shrinkwrap-deps.json");
/// <summary> /// Project-specific user profile folder /// </summary> internal static AbsolutePath UserProfile(JavaScriptProject project, PathTable pathTable) => project.TempFolder .Combine(pathTable, "USERPROFILE") .Combine(pathTable, project.ScriptCommandName);
/// <summary> /// Project-specific user profile folder /// </summary> internal static AbsolutePath UserProfile(JavaScriptProject project, PathTable pathTable) => project.TempFolder .Combine(pathTable, "USERPROFILE") .Combine(pathTable, PipConstructionUtilities.SanitizeStringForSymbol(project.ScriptCommandName));