You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/overview.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ The tool installers will leverage existing distribution mechanisms such as zips
17
17
18
18
Installers will just be another type of task. The task library UI will have another tab as a sibling of build, test, deploy, and utilities.
19
19
20
-
An installer task will:
20
+
An installer task will:
21
21
22
22
- Advertise common or well known versions of a tool (LTS or common) via a combo dropdown
23
23
- Find that version in a tools cache or acquires it on demand
@@ -26,7 +26,7 @@ An installer task will:
26
26
27
27
## Tool Cache
28
28
29
-
The tool cache will be located under `_work/tools` but there's an environment variable `AGENT_TOOLSDIRECTORY` to override the location. This is useful for scenarios such as our hosted image or offline agents which want to build a tools cache and direct the agent to use it: see
29
+
The tool cache will be located under `_work/_tool` but there's an environment variable `AGENT_TOOLSDIRECTORY` to override the location. This is useful for scenarios such as our hosted image or offline agents which want to build a tools cache and direct the agent to use it.
30
30
31
31
The cache will be keyed by name, version, and optionally platform (x86, x64).
32
32
@@ -55,7 +55,7 @@ The downloader should also be robust to virus scanners.
55
55
56
56
## Setting up the environment
57
57
58
-
The tools folder will be pre-pended to the path. This sets up the environment so subsequent tasks and scripts use the tool version specified. For example, if npm 3.0 is chosen, it doesn't matter if subsequent execution is via the npm task, a cmd line task or a script. It will be used. This also keeps the tasks simple - use the tool in the path regardless if that's a result of a pre-requisite being installed or an installer task acquiring the tool.
58
+
The tools folder will be pre-pended to the path. This sets up the environment so subsequent tasks and scripts use the tool version specified. For example, if npm 3.0 is chosen, it doesn't matter if subsequent execution is via the npm task, a cmd line task or a script. It will be used. This also keeps the tasks simple - use the tool in the path regardless if that's a result of a pre-requisite being installed or an installer task acquiring the tool.
59
59
60
60
The binary folder which will be used may not be directly under the root of the binaries. As as example, node is in the bin folder and expects the libs to be in a sibling lib folder. We should not manipulate the layout of the toolset. The installer has first hand knowledge of that layout (might even vary by version) and knows what folder to prepend to the path (next section).
61
61
@@ -74,7 +74,7 @@ Chocolatey task:
74
74
demands: [
75
75
"chocolatey"
76
76
]
77
-
```
77
+
```
78
78
79
79
Chocolatey tool installer task:
80
80
```JSON
@@ -100,7 +100,7 @@ Being able to multiply the builds using a set of runtime versions is useful for
100
100
101
101
To achieve this, add a tool installer task and for the version, reference a variable. E.g. $(node.version). In the node.version variable, specific a list of the versions and check the matrix build option on the build definitions option tab.
102
102
103
-
## Safe Tool Execution under Multiple Agents
103
+
## Safe Tool Execution under Multiple Agents
104
104
105
105
Some tools have caches of there own which when used by multiple agents on the same machine can lead to concurrency issues and failures. Examples are nuget and npm which have cache locations which can be overriden by environment variables. Since the tool installer has the first class knowledge of the tool, it can set the cache location.
0 commit comments