azure-pipelines-task-lib 4.7.0 → 5.0.1-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,6 +31,5 @@
31
31
  "loc.messages.LIB_UseFirstGlobMatch": "Multiple workspace matches. using first.",
32
32
  "loc.messages.LIB_MergeTestResultNotSupported": "Merging test results from multiple files to one test run is not supported on this version of build agent for OSX/Linux, each test result file will be published as a separate test run in VSO/TFS.",
33
33
  "loc.messages.LIB_PlatformNotSupported": "Platform not supported: %s",
34
- "loc.messages.LIB_CopyFileFailed": "Error while copying the file. Attempts left: %s",
35
- "loc.messages.LIB_UndefinedNodeVersion": "Node version is undefined."
34
+ "loc.messages.LIB_CopyFileFailed": "Error while copying the file. Attempts left: %s"
36
35
  }
package/lib.json CHANGED
@@ -32,7 +32,6 @@
32
32
  "LIB_UseFirstGlobMatch": "Multiple workspace matches. using first.",
33
33
  "LIB_MergeTestResultNotSupported": "Merging test results from multiple files to one test run is not supported on this version of build agent for OSX/Linux, each test result file will be published as a separate test run in VSO/TFS.",
34
34
  "LIB_PlatformNotSupported": "Platform not supported: %s",
35
- "LIB_CopyFileFailed": "Error while copying the file. Attempts left: %s",
36
- "LIB_UndefinedNodeVersion": "Node version is undefined."
35
+ "LIB_CopyFileFailed": "Error while copying the file. Attempts left: %s"
37
36
  }
38
37
  }
package/mock-answer.d.ts CHANGED
@@ -26,9 +26,6 @@ export interface TaskLibAnswers {
26
26
  getPlatform?: {
27
27
  [key: string]: task.Platform;
28
28
  };
29
- getNodeMajorVersion?: {
30
- [key: string]: Number;
31
- };
32
29
  getAgentMode?: {
33
30
  [key: string]: task.AgentHostedMode;
34
31
  };
package/mock-task.d.ts CHANGED
@@ -58,7 +58,6 @@ export interface FsOptions {
58
58
  export declare function writeFile(file: string, data: string | Buffer, options?: string | FsOptions): void;
59
59
  export declare function osType(): string;
60
60
  export declare function getPlatform(): task.Platform;
61
- export declare function getNodeMajorVersion(): Number;
62
61
  export declare function getAgentMode(): task.AgentHostedMode;
63
62
  export declare function cwd(): string;
64
63
  export declare function cd(path: string): void;
@@ -75,7 +74,6 @@ export declare function find(findPath: string): string[];
75
74
  export declare function rmRF(path: string): void;
76
75
  export declare function mv(source: string, dest: string, force: boolean, continueOnError?: boolean): boolean;
77
76
  export declare function exec(tool: string, args: any, options?: trm.IExecOptions): Q.Promise<number>;
78
- export declare function execAsync(tool: string, args: any, options?: trm.IExecOptions): Promise<number>;
79
77
  export declare function execSync(tool: string, args: any, options?: trm.IExecSyncOptions): trm.IExecSyncResult;
80
78
  export declare function tool(tool: string): trm.ToolRunner;
81
79
  export interface MatchOptions {
package/mock-task.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getHttpCertConfiguration = exports.getHttpProxyConfiguration = exports.CodeCoverageEnabler = exports.CodeCoveragePublisher = exports.TestPublisher = exports.legacyFindFiles = exports.findMatch = exports.tool = exports.execSync = exports.execAsync = exports.exec = exports.mv = exports.rmRF = exports.find = exports.retry = exports.cp = exports.ls = exports.which = exports.resolve = exports.mkdirP = exports.checkPath = exports.popd = exports.pushd = exports.cd = exports.cwd = exports.getAgentMode = exports.getNodeMajorVersion = exports.getPlatform = exports.osType = exports.writeFile = exports.exist = exports.stats = exports.FsStats = exports.loc = exports.setResourcePath = exports.setAnswers = void 0;
3
+ exports.getHttpCertConfiguration = exports.getHttpProxyConfiguration = exports.CodeCoverageEnabler = exports.CodeCoveragePublisher = exports.TestPublisher = exports.legacyFindFiles = exports.findMatch = exports.tool = exports.execSync = exports.exec = exports.mv = exports.rmRF = exports.find = exports.retry = exports.cp = exports.ls = exports.which = exports.resolve = exports.mkdirP = exports.checkPath = exports.popd = exports.pushd = exports.cd = exports.cwd = exports.getAgentMode = exports.getPlatform = exports.osType = exports.writeFile = exports.exist = exports.stats = exports.FsStats = exports.loc = exports.setResourcePath = exports.setAnswers = void 0;
4
4
  var path = require("path");
5
5
  var task = require("./task");
6
6
  var tcm = require("./taskcommand");
@@ -189,10 +189,6 @@ function getPlatform() {
189
189
  return mock.getResponse('getPlatform', 'getPlatform', module.exports.debug);
190
190
  }
191
191
  exports.getPlatform = getPlatform;
192
- function getNodeMajorVersion() {
193
- return mock.getResponse('getNodeMajorVersion', 'getNodeMajorVersion', module.exports.debug);
194
- }
195
- exports.getNodeMajorVersion = getNodeMajorVersion;
196
192
  function getAgentMode() {
197
193
  return mock.getResponse('getAgentMode', 'getAgentMode', module.exports.debug);
198
194
  }
@@ -303,18 +299,6 @@ function exec(tool, args, options) {
303
299
  return tr.exec(options);
304
300
  }
305
301
  exports.exec = exec;
306
- //-----------------------------------------------------
307
- // Exec convenience wrapper
308
- //-----------------------------------------------------
309
- function execAsync(tool, args, options) {
310
- var toolPath = which(tool, true);
311
- var tr = this.tool(toolPath);
312
- if (args) {
313
- tr.arg(args);
314
- }
315
- return tr.execAsync(options);
316
- }
317
- exports.execAsync = execAsync;
318
302
  function execSync(tool, args, options) {
319
303
  var toolPath = which(tool, true);
320
304
  var tr = this.tool(toolPath);
package/mock-test.d.ts CHANGED
@@ -10,7 +10,7 @@ export declare class MockTestRunner {
10
10
  succeeded: boolean;
11
11
  errorIssues: string[];
12
12
  warningIssues: string[];
13
- LoadAsync(testPath: string, taskJsonPath?: string): Promise<MockTestRunner>;
13
+ LoadAsync(testPath?: string, taskJsonPath?: string): Promise<MockTestRunner>;
14
14
  get failed(): boolean;
15
15
  ran(cmdline: string): boolean;
16
16
  createdErrorIssue(message: string): boolean;
@@ -18,12 +18,7 @@ export declare class MockTestRunner {
18
18
  stdOutContained(message: string): boolean;
19
19
  stdErrContained(message: string): boolean;
20
20
  runAsync(nodeVersion?: number): Promise<void>;
21
- /**
22
- * @deprecated This method uses library which is not prefered to use on production
23
- */
24
- run(nodeVersion?: number): void;
25
21
  private getNodePath;
26
- private getNodePathSync;
27
22
  private getNodeVersion;
28
23
  private getTaskJsonPath;
29
24
  private downloadNode;
package/mock-test.js CHANGED
@@ -39,12 +39,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.MockTestRunner = void 0;
40
40
  var cp = require("child_process");
41
41
  var fs = require("fs");
42
- var ncp = require("child_process");
43
42
  var os = require("os");
44
43
  var path = require("path");
45
44
  var cmdm = require("./taskcommand");
46
45
  var shelljs = require("shelljs");
47
- var deasync = require("deasync");
48
46
  var Downloader = require("nodejs-file-downloader");
49
47
  var COMMAND_TAG = '[command]';
50
48
  var COMMAND_LENGTH = COMMAND_TAG.length;
@@ -65,7 +63,6 @@ var MockTestRunner = /** @class */ (function () {
65
63
  return;
66
64
  this._taskJsonPath = taskJsonPath || '';
67
65
  this._testPath = testPath;
68
- this.nodePath = this.getNodePathSync();
69
66
  }
70
67
  MockTestRunner.prototype.LoadAsync = function (testPath, taskJsonPath) {
71
68
  return __awaiter(this, void 0, void 0, function () {
@@ -80,8 +77,12 @@ var MockTestRunner = /** @class */ (function () {
80
77
  resolve(this);
81
78
  return [2 /*return*/];
82
79
  }
83
- this._taskJsonPath = taskJsonPath || '';
84
- this._testPath = testPath;
80
+ if (testPath) {
81
+ this._testPath = testPath;
82
+ }
83
+ if (taskJsonPath) {
84
+ this._taskJsonPath = taskJsonPath;
85
+ }
85
86
  _a = this;
86
87
  return [4 /*yield*/, this.getNodePath()];
87
88
  case 1:
@@ -133,8 +134,15 @@ var MockTestRunner = /** @class */ (function () {
133
134
  return [4 /*yield*/, this.getNodePath(nodeVersion)];
134
135
  case 1:
135
136
  nodePath = _a.sent();
136
- _a.label = 2;
137
+ return [3 /*break*/, 4];
137
138
  case 2:
139
+ if (!!nodePath) return [3 /*break*/, 4];
140
+ return [4 /*yield*/, this.getNodePath()];
141
+ case 3:
142
+ nodePath = _a.sent();
143
+ this.nodePath = nodePath;
144
+ _a.label = 4;
145
+ case 4:
138
146
  spawn = cp.spawnSync(nodePath, [this._testPath]);
139
147
  // Clean environment
140
148
  Object.keys(process.env)
@@ -199,14 +207,6 @@ var MockTestRunner = /** @class */ (function () {
199
207
  });
200
208
  });
201
209
  };
202
- /**
203
- * @deprecated This method uses library which is not prefered to use on production
204
- */
205
- MockTestRunner.prototype.run = function (nodeVersion) {
206
- var completeExecution = false;
207
- this.runAsync(nodeVersion).then(function (t) { return completeExecution = true; });
208
- deasync.loopWhile(function () { return !completeExecution; });
209
- };
210
210
  // Returns a path to node.exe with the correct version for this task (based on if its node10 or node)
211
211
  MockTestRunner.prototype.getNodePath = function (nodeVersion) {
212
212
  return __awaiter(this, void 0, void 0, function () {
@@ -240,12 +240,6 @@ var MockTestRunner = /** @class */ (function () {
240
240
  });
241
241
  });
242
242
  };
243
- MockTestRunner.prototype.getNodePathSync = function (nodeVersion) {
244
- var nodePath = '';
245
- this.getNodePath(nodeVersion).then(function (t) { return nodePath = t; });
246
- deasync.loopWhile(function () { return nodePath == ''; });
247
- return nodePath;
248
- };
249
243
  // Determines the correct version of node to use based on the contents of the task's task.json. Defaults to Node 16.
250
244
  MockTestRunner.prototype.getNodeVersion = function () {
251
245
  var taskJsonPath = this.getTaskJsonPath();
@@ -389,7 +383,7 @@ var MockTestRunner = /** @class */ (function () {
389
383
  originalCwd = process.cwd();
390
384
  process.chdir(downloadDestination);
391
385
  try {
392
- ncp.execSync("tar -xzf \"" + path.join(downloadDestination, tarGzName) + "\"");
386
+ cp.execSync("tar -xzf \"" + path.join(downloadDestination, tarGzName) + "\"");
393
387
  }
394
388
  catch (_b) {
395
389
  throw new Error('Failed to unzip node tar.gz from ' + url);
@@ -36,12 +36,6 @@ export declare class ToolRunner extends events.EventEmitter {
36
36
  line(val: string): ToolRunner;
37
37
  pipeExecOutputToTool(tool: ToolRunner): ToolRunner;
38
38
  private ignoreTempPath;
39
- execAsync(options?: IExecOptions): Promise<number>;
40
- /**
41
- * Exec - use for long running tools where you need to stream live output as it runs
42
- * @deprecated use `execAsync` instead
43
- * @returns a promise with return code.
44
- */
45
39
  exec(options?: IExecOptions): Q.Promise<number>;
46
40
  execSync(options?: IExecSyncOptions): IExecSyncResult;
47
41
  }
@@ -130,99 +130,6 @@ var ToolRunner = /** @class */ (function (_super) {
130
130
  // Exec - use for long running tools where you need to stream live output as it runs
131
131
  // returns a promise with return code.
132
132
  //
133
- ToolRunner.prototype.execAsync = function (options) {
134
- var _this = this;
135
- this._debug('exec tool: ' + this.toolPath);
136
- this._debug('Arguments:');
137
- this.args.forEach(function (arg) {
138
- _this._debug(' ' + arg);
139
- });
140
- var success = true;
141
- options = options || {};
142
- var ops = {
143
- cwd: options.cwd || process.cwd(),
144
- env: options.env || process.env,
145
- silent: options.silent || false,
146
- outStream: options.outStream || process.stdout,
147
- errStream: options.errStream || process.stderr,
148
- failOnStdErr: options.failOnStdErr || false,
149
- ignoreReturnCode: options.ignoreReturnCode || false,
150
- windowsVerbatimArguments: options.windowsVerbatimArguments
151
- };
152
- var argString = this.args.join(' ') || '';
153
- var cmdString = this.toolPath;
154
- if (argString) {
155
- cmdString += (' ' + argString);
156
- }
157
- // Using split/join to replace the temp path
158
- cmdString = this.ignoreTempPath(cmdString);
159
- if (!ops.silent) {
160
- if (this.pipeOutputToTool) {
161
- var pipeToolArgString = this.pipeOutputToTool.args.join(' ') || '';
162
- var pipeToolCmdString = this.ignoreTempPath(this.pipeOutputToTool.toolPath);
163
- if (pipeToolArgString) {
164
- pipeToolCmdString += (' ' + pipeToolArgString);
165
- }
166
- cmdString += ' | ' + pipeToolCmdString;
167
- }
168
- ops.outStream.write('[command]' + cmdString + os.EOL);
169
- }
170
- // TODO: filter process.env
171
- var res = mock.getResponse('exec', cmdString, debug);
172
- if (res.stdout) {
173
- this.emit('stdout', res.stdout);
174
- if (!ops.silent) {
175
- ops.outStream.write(res.stdout + os.EOL);
176
- }
177
- var stdLineArray = res.stdout.split(os.EOL);
178
- for (var _i = 0, _a = stdLineArray.slice(0, -1); _i < _a.length; _i++) {
179
- var line = _a[_i];
180
- this.emit('stdline', line);
181
- }
182
- if (stdLineArray.length > 0 && stdLineArray[stdLineArray.length - 1].length > 0) {
183
- this.emit('stdline', stdLineArray[stdLineArray.length - 1]);
184
- }
185
- }
186
- if (res.stderr) {
187
- this.emit('stderr', res.stderr);
188
- success = !ops.failOnStdErr;
189
- if (!ops.silent) {
190
- var s = ops.failOnStdErr ? ops.errStream : ops.outStream;
191
- s.write(res.stderr + os.EOL);
192
- }
193
- var stdErrArray = res.stderr.split(os.EOL);
194
- for (var _b = 0, _c = stdErrArray.slice(0, -1); _b < _c.length; _b++) {
195
- var line = _c[_b];
196
- this.emit('errline', line);
197
- }
198
- if (stdErrArray.length > 0 && stdErrArray[stdErrArray.length - 1].length > 0) {
199
- this.emit('errline', stdErrArray[stdErrArray.length - 1]);
200
- }
201
- }
202
- var code = res.code;
203
- if (!ops.silent) {
204
- ops.outStream.write('rc:' + res.code + os.EOL);
205
- }
206
- if (code != 0 && !ops.ignoreReturnCode) {
207
- success = false;
208
- }
209
- if (!ops.silent) {
210
- ops.outStream.write('success:' + success + os.EOL);
211
- }
212
- return new Promise(function (resolve, reject) {
213
- if (success) {
214
- resolve(code);
215
- }
216
- else {
217
- reject(new Error(_this.toolPath + ' failed with return code: ' + code));
218
- }
219
- });
220
- };
221
- /**
222
- * Exec - use for long running tools where you need to stream live output as it runs
223
- * @deprecated use `execAsync` instead
224
- * @returns a promise with return code.
225
- */
226
133
  ToolRunner.prototype.exec = function (options) {
227
134
  var _this = this;
228
135
  var defer = Q.defer();
@@ -317,6 +224,7 @@ var ToolRunner = /** @class */ (function (_super) {
317
224
  //
318
225
  ToolRunner.prototype.execSync = function (options) {
319
226
  var _this = this;
227
+ var defer = Q.defer();
320
228
  this._debug('exec tool: ' + this.toolPath);
321
229
  this._debug('Arguments:');
322
230
  this.args.forEach(function (arg) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "azure-pipelines-task-lib",
3
- "version": "4.7.0",
3
+ "version": "5.0.1-preview.0",
4
4
  "description": "Azure Pipelines Task SDK",
5
5
  "main": "./task.js",
6
6
  "typings": "./task.d.ts",
@@ -28,7 +28,6 @@
28
28
  "homepage": "https://github.com/Microsoft/azure-pipelines-task-lib",
29
29
  "dependencies": {
30
30
  "adm-zip": "^0.5.10",
31
- "deasync": "^0.1.28",
32
31
  "minimatch": "3.0.5",
33
32
  "nodejs-file-downloader": "^4.11.1",
34
33
  "q": "^1.5.1",
package/task.d.ts CHANGED
@@ -325,11 +325,6 @@ export declare function osType(): string;
325
325
  * @throws {Error} Platform is not supported by our agent
326
326
  */
327
327
  export declare function getPlatform(): Platform;
328
- /**
329
- * Resolves major version of Node.js engine used by the agent.
330
- * @returns {Number} Node's major version.
331
- */
332
- export declare function getNodeMajorVersion(): Number;
333
328
  /**
334
329
  * Return hosted type of Agent
335
330
  * @returns {AgentHostedMode}
@@ -491,18 +486,6 @@ export declare function rmRF(inputPath: string): void;
491
486
  * @param options optional exec options. See IExecOptions
492
487
  * @returns number
493
488
  */
494
- export declare function execAsync(tool: string, args: any, options?: trm.IExecOptions): Promise<number>;
495
- /**
496
- * Exec a tool. Convenience wrapper over ToolRunner to exec with args in one call.
497
- * Output will be streamed to the live console.
498
- * Returns promise with return code
499
- *
500
- * @deprecated Use the {@link execAsync} method that returns a native Javascript Promise instead
501
- * @param tool path to tool to exec
502
- * @param args an arg string or array of args
503
- * @param options optional exec options. See IExecOptions
504
- * @returns number
505
- */
506
489
  export declare function exec(tool: string, args: any, options?: trm.IExecOptions): Q.Promise<number>;
507
490
  /**
508
491
  * Exec a tool synchronously. Convenience wrapper over ToolRunner to execSync with args in one call.
package/task.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateReleaseName = exports.addBuildTag = exports.updateBuildNumber = exports.uploadBuildLog = exports.associateArtifact = exports.uploadArtifact = exports.logIssue = exports.logDetail = exports.setProgress = exports.setEndpoint = exports.addAttachment = exports.uploadSummary = exports.prependPath = exports.uploadFile = exports.CodeCoverageEnabler = exports.CodeCoveragePublisher = exports.TestPublisher = exports.getHttpCertConfiguration = exports.getHttpProxyConfiguration = exports.findMatch = exports.filter = exports.match = exports.tool = exports.execSync = exports.exec = exports.execAsync = exports.rmRF = exports.legacyFindFiles = exports.find = exports.retry = exports.mv = exports.cp = exports.ls = exports.which = exports.resolve = exports.mkdirP = exports.popd = exports.pushd = exports.cd = exports.checkPath = exports.cwd = exports.getAgentMode = exports.getNodeMajorVersion = exports.getPlatform = exports.osType = exports.writeFile = exports.exist = exports.stats = exports.debug = exports.error = exports.warning = exports.command = exports.setTaskVariable = exports.getTaskVariable = exports.getSecureFileTicket = exports.getSecureFileName = exports.getEndpointAuthorization = exports.getEndpointAuthorizationParameterRequired = exports.getEndpointAuthorizationParameter = exports.getEndpointAuthorizationSchemeRequired = exports.getEndpointAuthorizationScheme = exports.getEndpointDataParameterRequired = exports.getEndpointDataParameter = exports.getEndpointUrlRequired = exports.getEndpointUrl = exports.getPathInputRequired = exports.getPathInput = exports.filePathSupplied = exports.getDelimitedInput = exports.getBoolFeatureFlag = exports.getBoolInput = exports.getInputRequired = exports.getInput = exports.setSecret = exports.setVariable = exports.getVariables = exports.assertAgent = exports.getVariable = exports.loc = exports.setResourcePath = exports.setResult = exports.setErrStream = exports.setStdStream = exports.AgentHostedMode = exports.Platform = exports.FieldType = exports.ArtifactType = exports.IssueType = exports.TaskState = exports.TaskResult = void 0;
3
+ exports.updateReleaseName = exports.addBuildTag = exports.updateBuildNumber = exports.uploadBuildLog = exports.associateArtifact = exports.uploadArtifact = exports.logIssue = exports.logDetail = exports.setProgress = exports.setEndpoint = exports.addAttachment = exports.uploadSummary = exports.prependPath = exports.uploadFile = exports.CodeCoverageEnabler = exports.CodeCoveragePublisher = exports.TestPublisher = exports.getHttpCertConfiguration = exports.getHttpProxyConfiguration = exports.findMatch = exports.filter = exports.match = exports.tool = exports.execSync = exports.exec = exports.rmRF = exports.legacyFindFiles = exports.find = exports.retry = exports.mv = exports.cp = exports.ls = exports.which = exports.resolve = exports.mkdirP = exports.popd = exports.pushd = exports.cd = exports.checkPath = exports.cwd = exports.getAgentMode = exports.getPlatform = exports.osType = exports.writeFile = exports.exist = exports.stats = exports.debug = exports.error = exports.warning = exports.command = exports.setTaskVariable = exports.getTaskVariable = exports.getSecureFileTicket = exports.getSecureFileName = exports.getEndpointAuthorization = exports.getEndpointAuthorizationParameterRequired = exports.getEndpointAuthorizationParameter = exports.getEndpointAuthorizationSchemeRequired = exports.getEndpointAuthorizationScheme = exports.getEndpointDataParameterRequired = exports.getEndpointDataParameter = exports.getEndpointUrlRequired = exports.getEndpointUrl = exports.getPathInputRequired = exports.getPathInput = exports.filePathSupplied = exports.getDelimitedInput = exports.getBoolFeatureFlag = exports.getBoolInput = exports.getInputRequired = exports.getInput = exports.setSecret = exports.setVariable = exports.getVariables = exports.assertAgent = exports.getVariable = exports.loc = exports.setResourcePath = exports.setResult = exports.setErrStream = exports.setStdStream = exports.AgentHostedMode = exports.Platform = exports.FieldType = exports.ArtifactType = exports.IssueType = exports.TaskState = exports.TaskResult = void 0;
4
4
  var shell = require("shelljs");
5
5
  var childProcess = require("child_process");
6
6
  var fs = require("fs");
@@ -616,23 +616,6 @@ function getPlatform() {
616
616
  }
617
617
  }
618
618
  exports.getPlatform = getPlatform;
619
- /**
620
- * Resolves major version of Node.js engine used by the agent.
621
- * @returns {Number} Node's major version.
622
- */
623
- function getNodeMajorVersion() {
624
- var _a;
625
- var version = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node;
626
- if (!version) {
627
- throw new Error(exports.loc('LIB_UndefinedNodeVersion'));
628
- }
629
- var parts = version.split('.').map(Number);
630
- if (parts.length < 1) {
631
- return NaN;
632
- }
633
- return parts[0];
634
- }
635
- exports.getNodeMajorVersion = getNodeMajorVersion;
636
619
  /**
637
620
  * Return hosted type of Agent
638
621
  * @returns {AgentHostedMode}
@@ -1281,33 +1264,6 @@ exports.rmRF = rmRF;
1281
1264
  * @param options optional exec options. See IExecOptions
1282
1265
  * @returns number
1283
1266
  */
1284
- function execAsync(tool, args, options) {
1285
- var tr = this.tool(tool);
1286
- tr.on('debug', function (data) {
1287
- exports.debug(data);
1288
- });
1289
- if (args) {
1290
- if (args instanceof Array) {
1291
- tr.arg(args);
1292
- }
1293
- else if (typeof (args) === 'string') {
1294
- tr.line(args);
1295
- }
1296
- }
1297
- return tr.execAsync(options);
1298
- }
1299
- exports.execAsync = execAsync;
1300
- /**
1301
- * Exec a tool. Convenience wrapper over ToolRunner to exec with args in one call.
1302
- * Output will be streamed to the live console.
1303
- * Returns promise with return code
1304
- *
1305
- * @deprecated Use the {@link execAsync} method that returns a native Javascript Promise instead
1306
- * @param tool path to tool to exec
1307
- * @param args an arg string or array of args
1308
- * @param options optional exec options. See IExecOptions
1309
- * @returns number
1310
- */
1311
1267
  function exec(tool, args, options) {
1312
1268
  var tr = this.tool(tool);
1313
1269
  tr.on('debug', function (data) {
package/toolrunner.d.ts CHANGED
@@ -94,7 +94,6 @@ export declare class ToolRunner extends events.EventEmitter {
94
94
  private _cloneExecOptions;
95
95
  private _getSpawnOptions;
96
96
  private _getSpawnSyncOptions;
97
- private execWithPipingAsync;
98
97
  private execWithPiping;
99
98
  /**
100
99
  * Add argument
@@ -140,17 +139,6 @@ export declare class ToolRunner extends events.EventEmitter {
140
139
  * @param options optional exec options. See IExecOptions
141
140
  * @returns number
142
141
  */
143
- execAsync(options?: IExecOptions): Promise<number>;
144
- /**
145
- * Exec a tool.
146
- * Output will be streamed to the live console.
147
- * Returns promise with return code
148
- *
149
- * @deprecated Use the `execAsync` method that returns a native Javascript promise instead
150
- * @param tool path to tool to exec
151
- * @param options optional exec options. See IExecOptions
152
- * @returns number
153
- */
154
142
  exec(options?: IExecOptions): Q.Promise<number>;
155
143
  /**
156
144
  * Exec a tool synchronously.
package/toolrunner.js CHANGED
@@ -516,184 +516,6 @@ var ToolRunner = /** @class */ (function (_super) {
516
516
  result['windowsVerbatimArguments'] = options.windowsVerbatimArguments || this._isCmdFile();
517
517
  return result;
518
518
  };
519
- ToolRunner.prototype.execWithPipingAsync = function (pipeOutputToTool, options) {
520
- var _this = this;
521
- this._debug('exec tool: ' + this.toolPath);
522
- this._debug('arguments:');
523
- this.args.forEach(function (arg) {
524
- _this._debug(' ' + arg);
525
- });
526
- var success = true;
527
- var optionsNonNull = this._cloneExecOptions(options);
528
- if (!optionsNonNull.silent) {
529
- optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL);
530
- }
531
- var cp;
532
- var toolPath = pipeOutputToTool.toolPath;
533
- var toolPathFirst;
534
- var successFirst = true;
535
- var returnCodeFirst;
536
- var fileStream;
537
- var waitingEvents = 0; // number of process or stream events we are waiting on to complete
538
- var returnCode = 0;
539
- var error;
540
- toolPathFirst = this.toolPath;
541
- // Following node documentation example from this link on how to pipe output of one process to another
542
- // https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options
543
- //start the child process for both tools
544
- waitingEvents++;
545
- var cpFirst = child.spawn(this._getSpawnFileName(optionsNonNull), this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(optionsNonNull));
546
- waitingEvents++;
547
- cp = child.spawn(pipeOutputToTool._getSpawnFileName(optionsNonNull), pipeOutputToTool._getSpawnArgs(optionsNonNull), pipeOutputToTool._getSpawnOptions(optionsNonNull));
548
- fileStream = this.pipeOutputToFile ? fs.createWriteStream(this.pipeOutputToFile) : null;
549
- return new Promise(function (resolve, reject) {
550
- var _a, _b, _c, _d;
551
- if (fileStream) {
552
- waitingEvents++;
553
- fileStream.on('finish', function () {
554
- waitingEvents--; //file write is complete
555
- fileStream = null;
556
- if (waitingEvents == 0) {
557
- if (error) {
558
- reject(error);
559
- }
560
- else {
561
- resolve(returnCode);
562
- }
563
- }
564
- });
565
- fileStream.on('error', function (err) {
566
- waitingEvents--; //there were errors writing to the file, write is done
567
- _this._debug("Failed to pipe output of " + toolPathFirst + " to file " + _this.pipeOutputToFile + ". Error = " + err);
568
- fileStream = null;
569
- if (waitingEvents == 0) {
570
- if (error) {
571
- reject(error);
572
- }
573
- else {
574
- resolve(returnCode);
575
- }
576
- }
577
- });
578
- }
579
- //pipe stdout of first tool to stdin of second tool
580
- (_a = cpFirst.stdout) === null || _a === void 0 ? void 0 : _a.on('data', function (data) {
581
- var _a;
582
- try {
583
- if (fileStream) {
584
- fileStream.write(data);
585
- }
586
- (_a = cp.stdin) === null || _a === void 0 ? void 0 : _a.write(data);
587
- }
588
- catch (err) {
589
- _this._debug('Failed to pipe output of ' + toolPathFirst + ' to ' + toolPath);
590
- _this._debug(toolPath + ' might have exited due to errors prematurely. Verify the arguments passed are valid.');
591
- }
592
- });
593
- (_b = cpFirst.stderr) === null || _b === void 0 ? void 0 : _b.on('data', function (data) {
594
- if (fileStream) {
595
- fileStream.write(data);
596
- }
597
- successFirst = !optionsNonNull.failOnStdErr;
598
- if (!optionsNonNull.silent) {
599
- var s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream;
600
- s.write(data);
601
- }
602
- });
603
- cpFirst.on('error', function (err) {
604
- var _a;
605
- waitingEvents--; //first process is complete with errors
606
- if (fileStream) {
607
- fileStream.end();
608
- }
609
- (_a = cp.stdin) === null || _a === void 0 ? void 0 : _a.end();
610
- error = new Error(toolPathFirst + ' failed. ' + err.message);
611
- if (waitingEvents == 0) {
612
- reject(error);
613
- }
614
- });
615
- cpFirst.on('close', function (code, signal) {
616
- var _a;
617
- waitingEvents--; //first process is complete
618
- if (code != 0 && !optionsNonNull.ignoreReturnCode) {
619
- successFirst = false;
620
- returnCodeFirst = code;
621
- returnCode = returnCodeFirst;
622
- }
623
- _this._debug('success of first tool:' + successFirst);
624
- if (fileStream) {
625
- fileStream.end();
626
- }
627
- (_a = cp.stdin) === null || _a === void 0 ? void 0 : _a.end();
628
- if (waitingEvents == 0) {
629
- if (error) {
630
- reject(error);
631
- }
632
- else {
633
- resolve(returnCode);
634
- }
635
- }
636
- });
637
- var stdbuffer = '';
638
- (_c = cp.stdout) === null || _c === void 0 ? void 0 : _c.on('data', function (data) {
639
- _this.emit('stdout', data);
640
- if (!optionsNonNull.silent) {
641
- optionsNonNull.outStream.write(data);
642
- }
643
- _this._processLineBuffer(data, stdbuffer, function (line) {
644
- _this.emit('stdline', line);
645
- });
646
- });
647
- var errbuffer = '';
648
- (_d = cp.stderr) === null || _d === void 0 ? void 0 : _d.on('data', function (data) {
649
- _this.emit('stderr', data);
650
- success = !optionsNonNull.failOnStdErr;
651
- if (!optionsNonNull.silent) {
652
- var s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream;
653
- s.write(data);
654
- }
655
- _this._processLineBuffer(data, errbuffer, function (line) {
656
- _this.emit('errline', line);
657
- });
658
- });
659
- cp.on('error', function (err) {
660
- waitingEvents--; //process is done with errors
661
- error = new Error(toolPath + ' failed. ' + err.message);
662
- if (waitingEvents == 0) {
663
- reject(error);
664
- }
665
- });
666
- cp.on('close', function (code, signal) {
667
- waitingEvents--; //process is complete
668
- _this._debug('rc:' + code);
669
- returnCode = code;
670
- if (stdbuffer.length > 0) {
671
- _this.emit('stdline', stdbuffer);
672
- }
673
- if (errbuffer.length > 0) {
674
- _this.emit('errline', errbuffer);
675
- }
676
- if (code != 0 && !optionsNonNull.ignoreReturnCode) {
677
- success = false;
678
- }
679
- _this._debug('success:' + success);
680
- if (!successFirst) { //in the case output is piped to another tool, check exit code of both tools
681
- error = new Error(toolPathFirst + ' failed with return code: ' + returnCodeFirst);
682
- }
683
- else if (!success) {
684
- error = new Error(toolPath + ' failed with return code: ' + code);
685
- }
686
- if (waitingEvents == 0) {
687
- if (error) {
688
- reject(error);
689
- }
690
- else {
691
- resolve(returnCode);
692
- }
693
- }
694
- });
695
- });
696
- };
697
519
  ToolRunner.prototype.execWithPiping = function (pipeOutputToTool, options) {
698
520
  var _this = this;
699
521
  var _a, _b, _c, _d;
@@ -945,104 +767,6 @@ var ToolRunner = /** @class */ (function (_super) {
945
767
  * @param options optional exec options. See IExecOptions
946
768
  * @returns number
947
769
  */
948
- ToolRunner.prototype.execAsync = function (options) {
949
- var _this = this;
950
- var _a, _b, _c;
951
- if (this.pipeOutputToTool) {
952
- return this.execWithPipingAsync(this.pipeOutputToTool, options);
953
- }
954
- this._debug('exec tool: ' + this.toolPath);
955
- this._debug('arguments:');
956
- this.args.forEach(function (arg) {
957
- _this._debug(' ' + arg);
958
- });
959
- var optionsNonNull = this._cloneExecOptions(options);
960
- if (!optionsNonNull.silent) {
961
- optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL);
962
- }
963
- var state = new ExecState(optionsNonNull, this.toolPath);
964
- state.on('debug', function (message) {
965
- _this._debug(message);
966
- });
967
- var cp = child.spawn(this._getSpawnFileName(options), this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(options));
968
- this.childProcess = cp;
969
- // it is possible for the child process to end its last line without a new line.
970
- // because stdout is buffered, this causes the last line to not get sent to the parent
971
- // stream. Adding this event forces a flush before the child streams are closed.
972
- (_a = cp.stdout) === null || _a === void 0 ? void 0 : _a.on('finish', function () {
973
- if (!optionsNonNull.silent) {
974
- optionsNonNull.outStream.write(os.EOL);
975
- }
976
- });
977
- var stdbuffer = '';
978
- (_b = cp.stdout) === null || _b === void 0 ? void 0 : _b.on('data', function (data) {
979
- _this.emit('stdout', data);
980
- if (!optionsNonNull.silent) {
981
- optionsNonNull.outStream.write(data);
982
- }
983
- _this._processLineBuffer(data, stdbuffer, function (line) {
984
- _this.emit('stdline', line);
985
- });
986
- });
987
- var errbuffer = '';
988
- (_c = cp.stderr) === null || _c === void 0 ? void 0 : _c.on('data', function (data) {
989
- state.processStderr = true;
990
- _this.emit('stderr', data);
991
- if (!optionsNonNull.silent) {
992
- var s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream;
993
- s.write(data);
994
- }
995
- _this._processLineBuffer(data, errbuffer, function (line) {
996
- _this.emit('errline', line);
997
- });
998
- });
999
- cp.on('error', function (err) {
1000
- state.processError = err.message;
1001
- state.processExited = true;
1002
- state.processClosed = true;
1003
- state.CheckComplete();
1004
- });
1005
- cp.on('exit', function (code, signal) {
1006
- state.processExitCode = code;
1007
- state.processExited = true;
1008
- _this._debug("Exit code " + code + " received from tool '" + _this.toolPath + "'");
1009
- state.CheckComplete();
1010
- });
1011
- cp.on('close', function (code, signal) {
1012
- state.processExitCode = code;
1013
- state.processExited = true;
1014
- state.processClosed = true;
1015
- _this._debug("STDIO streams have closed for tool '" + _this.toolPath + "'");
1016
- state.CheckComplete();
1017
- });
1018
- return new Promise(function (resolve, reject) {
1019
- state.on('done', function (error, exitCode) {
1020
- if (stdbuffer.length > 0) {
1021
- _this.emit('stdline', stdbuffer);
1022
- }
1023
- if (errbuffer.length > 0) {
1024
- _this.emit('errline', errbuffer);
1025
- }
1026
- cp.removeAllListeners();
1027
- if (error) {
1028
- reject(error);
1029
- }
1030
- else {
1031
- resolve(exitCode);
1032
- }
1033
- });
1034
- });
1035
- };
1036
- /**
1037
- * Exec a tool.
1038
- * Output will be streamed to the live console.
1039
- * Returns promise with return code
1040
- *
1041
- * @deprecated Use the `execAsync` method that returns a native Javascript promise instead
1042
- * @param tool path to tool to exec
1043
- * @param options optional exec options. See IExecOptions
1044
- * @returns number
1045
- */
1046
770
  ToolRunner.prototype.exec = function (options) {
1047
771
  var _this = this;
1048
772
  var _a, _b, _c;