Skip to content

Commit 5adadae

Browse files
Enable task authors to determine whether the task is running on a hosted agent, or not. (#869)
* Added function getAgentMode * Function getAgentMode added to documentation * Fix of documentation
1 parent ee582bc commit 5adadae

File tree

6 files changed

+56
-1
lines changed

6 files changed

+56
-1
lines changed

node/docs/azure-pipelines-task-lib.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,20 @@
680680
}
681681
]
682682
},
683+
"getAgentMode": {
684+
"name": "getAgentMode",
685+
"members": {},
686+
"documentation": "Gets a agent hosted mode: Unknown, SelfHosted or MsHosted.\nRequires a 2.212.0 agent or higher for full functionality. With lower version returns AgentHostedMode.Unknown value. \n\n@returns AgentHostedMode",
687+
"kind": "function",
688+
"signatures": [
689+
{
690+
"parameters": [],
691+
"members": {},
692+
"return": "AgentHostedMode",
693+
"documentation": "Gets a agent hosted mode: Unknown, SelfHosted or MsHosted.\nRequires a 2.212.0 agent or higher for full functionality. With lower version returns AgentHostedMode.Unknown value. \n\n@returns AgentHostedMode"
694+
}
695+
]
696+
},
683697
"setVariable": {
684698
"name": "setVariable",
685699
"members": {},

node/docs/azure-pipelines-task-lib.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import tl = require('azure-pipelines-task-lib/task')
3535
<a href="#tasksetVariable">setVariable</a> <br/>
3636
<a href="#taskgetTaskVariable">getTaskVariable</a> <br/>
3737
<a href="#tasksetTaskVariable">setTaskVariable</a> <br/>
38+
<a href="#taskgetAgentMode">getAgentMode</a> <br/>
3839

3940
### Execution <a href="#Execution">(v)</a>
4041

@@ -290,6 +291,18 @@ Limitations on an agent prior to 2.104.1:
290291
getVariables():VariableInfo[]
291292
```
292293

294+
<br/>
295+
<div id="taskgetAgentMode">
296+
297+
### task.getAgentMode <a href="#index">(^)</a>
298+
Gets a agent hosted mode: Unknown, SelfHosted or MsHosted.
299+
Requires a 2.212.0 agent or higher for full functionality. With lower version returns AgentHostedMode.Unknown value.
300+
301+
@returns AgentHostedMode
302+
```javascript
303+
getAgentMode():AgentHostedMode
304+
```
305+
293306
<br/>
294307
<div id="tasksetVariable">
295308

node/docs/docs.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
"task.getVariables",
2424
"task.setVariable",
2525
"task.getTaskVariable",
26-
"task.setTaskVariable"
26+
"task.setTaskVariable",
27+
"task.getAgentMode"
2728
]
2829
},
2930
"Execution": {

node/mock-answer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export interface TaskLibAnswers {
1414
find?: { [key: string]: string[] },
1515
findMatch?: { [key: string]: string[] },
1616
getPlatform?: { [key: string]: task.Platform },
17+
getAgentMode?: { [key: string]: task.AgentHostedMode },
1718
legacyFindFiles?: { [key: string]: string[] },
1819
ls?: { [key: string]: string },
1920
osType?: { [key: string]: string },

node/mock-task.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,10 @@ export function getPlatform(): task.Platform {
222222
return mock.getResponse('getPlatform', 'getPlatform', module.exports.debug);
223223
}
224224

225+
export function getAgentMode(): task.AgentHostedMode {
226+
return mock.getResponse('getAgentMode', 'getAgentMode', module.exports.debug);
227+
}
228+
225229
export function cwd(): string {
226230
return mock.getResponse('cwd', 'cwd', module.exports.debug);
227231
}

node/task.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ export enum Platform {
5151
Linux
5252
}
5353

54+
export enum AgentHostedMode {
55+
Unknown,
56+
SelfHosted,
57+
MsHosted
58+
}
59+
5460
//-----------------------------------------------------
5561
// General Helpers
5662
//-----------------------------------------------------
@@ -659,6 +665,22 @@ export function getPlatform(): Platform {
659665
}
660666
}
661667

668+
/**
669+
* Return hosted type of Agent
670+
* @returns {AgentHostedMode}
671+
*/
672+
export function getAgentMode(): AgentHostedMode {
673+
let agentCloudId = getVariable('Agent.CloudId');
674+
675+
if (agentCloudId === undefined)
676+
return AgentHostedMode.Unknown;
677+
678+
if (agentCloudId)
679+
return AgentHostedMode.MsHosted;
680+
681+
return AgentHostedMode.SelfHosted;
682+
}
683+
662684
/**
663685
* Returns the process's current working directory.
664686
* see [process.cwd](https://nodejs.org/api/process.html#process_process_cwd)

0 commit comments

Comments
 (0)