Example #1
0
        /// <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);
        }
Example #2
0
        /// <nodoc/>
        public JavaScriptProjectSchedulingFailure(JavaScriptProject project, string failure)
        {
            Contract.RequiresNotNull(project);
            Contract.RequiresNotNullOrEmpty(failure);

            m_project = project;
            m_failure = failure;
        }
Example #3
0
        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);
        }
Example #4
0
        /// <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));
            }
        }
Example #5
0
        /// <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");
Example #7
0
 /// <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));