Enable changing artifact staging location #15445
Open
+43
−9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change adds an environment variable (
ARCADE_STAGINGDIRECTORY
) which can be used to control where artifacts and packages are populated.This change is desired because there are some systems which run and needlessly scan artifacts simply because they reside in the sources folder. Those scan should be intentional. This change will allow us to avoid scanning unnecessary files which will dramatically reduce overall build times (times have not yet been measured but I believe this to be true).
This is the first of two changes which will be required to support this. Arcade provides a lot of templates which have hard-coded paths to the artifacts location, those will need to be updated after this change is published.
The following outlines the behavior changes on Windows. Behavior changes are the same for Linux/Mac.
Previous behavior
With
-ci
option:artifacts
->[repo root]\artifacts
toolset
->[repo root]\artifacts\toolset
.packages
->[repo root]\.packages
(controllable viaNUGET_PACKAGES
env variable)Without
-ci
option:artifacts
->[repo root]\artifacts
toolset
->[repo root]\artifacts\toolset
.packages
->[UserProfile]\.nuget\packages
(controllable viaNUGET_PACKAGES
env variable)New behavior
If
ARCADE_STAGINGDIRECTORY
is not set, behavior is unchanged.If
ARCADE_STAGINGDIRECTORY
is set to a local path then:With
-ci
option:artifacts
->[ARCADE_STAGINGDIRECTORY]\artifacts
toolset
->[repo root]\.toolset
(toolset moves out of artifacts folder because it requires discovering the repo's NuGet.config file.packages
->[ARCADE_STAGINGDIRECTORY]\.packages
(controllable viaNUGET_PACKAGES
env variable)Without
-ci
option:artifacts
->[ARCADE_STAGINGDIRECTORY]\artifacts
toolset
->[repo root]\.toolset
(toolset moves out of artifacts folder because it requires discovering the repo's NuGet.config file.packages
->[UserProfile]\.nuget\packages
(controllable viaNUGET_PACKAGES
env variable)To double check:
Validated locally on Windows and Ubuntu with Arcade version 10.0.0-beta.25074.2 from the
general-testing
public feed.