azure-pipelines-task-lib 4.8.1 → 4.9.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.
- package/internal.js +4 -4
- package/mock-task.js +1 -0
- package/package.json +1 -1
- package/task.d.ts +9 -1
- package/task.js +28 -9
package/internal.js
CHANGED
|
@@ -33,7 +33,7 @@ var IssueSource;
|
|
|
33
33
|
//-----------------------------------------------------
|
|
34
34
|
// async await needs generators in node 4.x+
|
|
35
35
|
if (semver.lt(process.versions.node, '4.2.0')) {
|
|
36
|
-
_warning('Tasks require a new agent. Upgrade your agent or node to 4.2.0 or later');
|
|
36
|
+
_warning('Tasks require a new agent. Upgrade your agent or node to 4.2.0 or later', IssueSource.TaskInternal);
|
|
37
37
|
}
|
|
38
38
|
//-----------------------------------------------------
|
|
39
39
|
// String convenience
|
|
@@ -124,7 +124,7 @@ function _loadLocStrings(resourceFile, culture) {
|
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
else {
|
|
127
|
-
_warning('LIB_ResourceFile does not exist');
|
|
127
|
+
_warning('LIB_ResourceFile does not exist', IssueSource.TaskInternal);
|
|
128
128
|
}
|
|
129
129
|
return locStrings;
|
|
130
130
|
}
|
|
@@ -159,7 +159,7 @@ function _setResourcePath(path, ignoreWarnings) {
|
|
|
159
159
|
_debug(_loc('LIB_ResourceFileAlreadySet', path));
|
|
160
160
|
}
|
|
161
161
|
else {
|
|
162
|
-
_warning(_loc('LIB_ResourceFileAlreadySet', path));
|
|
162
|
+
_warning(_loc('LIB_ResourceFileAlreadySet', path), IssueSource.TaskInternal);
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
}
|
|
@@ -193,7 +193,7 @@ function _loc(key) {
|
|
|
193
193
|
}
|
|
194
194
|
else {
|
|
195
195
|
if (Object.keys(_resourceFiles).length <= 0) {
|
|
196
|
-
_warning("Resource file haven't been set, can't find loc string for key: " + key);
|
|
196
|
+
_warning("Resource file haven't been set, can't find loc string for key: " + key, IssueSource.TaskInternal);
|
|
197
197
|
}
|
|
198
198
|
else {
|
|
199
199
|
_warning("Can't find loc string for key: " + key);
|
package/mock-task.js
CHANGED
|
@@ -60,6 +60,7 @@ module.exports.getInput = task.getInput;
|
|
|
60
60
|
module.exports.getInputRequired = task.getInputRequired;
|
|
61
61
|
module.exports.getBoolInput = task.getBoolInput;
|
|
62
62
|
module.exports.getBoolFeatureFlag = task.getBoolFeatureFlag;
|
|
63
|
+
module.exports.getPipelineFeature = task.getPipelineFeature;
|
|
63
64
|
module.exports.getDelimitedInput = task.getDelimitedInput;
|
|
64
65
|
module.exports.filePathSupplied = task.filePathSupplied;
|
|
65
66
|
function getPathInput(name, required, check) {
|
package/package.json
CHANGED
package/task.d.ts
CHANGED
|
@@ -135,12 +135,20 @@ export declare function getInputRequired(name: string): string;
|
|
|
135
135
|
export declare function getBoolInput(name: string, required?: boolean): boolean;
|
|
136
136
|
/**
|
|
137
137
|
* Gets the value of an feature flag and converts to a bool.
|
|
138
|
-
*
|
|
138
|
+
* @IMPORTANT This method is only for internal Microsoft development. Do not use it for external tasks.
|
|
139
139
|
* @param name name of the feature flag to get.
|
|
140
140
|
* @param defaultValue default value of the feature flag in case it's not found in env. (optional. Default value = false)
|
|
141
141
|
* @returns boolean
|
|
142
|
+
* @deprecated Don't use this for new development. Use getPipelineFeature instead.
|
|
142
143
|
*/
|
|
143
144
|
export declare function getBoolFeatureFlag(ffName: string, defaultValue?: boolean): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Gets the value of an task feature and converts to a bool.
|
|
147
|
+
* @IMPORTANT This method is only for internal Microsoft development. Do not use it for external tasks.
|
|
148
|
+
* @param name name of the feature to get.
|
|
149
|
+
* @returns boolean
|
|
150
|
+
*/
|
|
151
|
+
export declare function getPipelineFeature(featureName: string): boolean;
|
|
144
152
|
/**
|
|
145
153
|
* Gets the value of an input and splits the value using a delimiter (space, comma, etc).
|
|
146
154
|
* Empty values are removed. This function is useful for splitting an input containing a simple
|
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.IssueSource = 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.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.getPipelineFeature = 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.IssueSource = 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");
|
|
@@ -68,10 +68,10 @@ function setResult(result, message, done) {
|
|
|
68
68
|
exports.debug('task result: ' + TaskResult[result]);
|
|
69
69
|
// add an error issue
|
|
70
70
|
if (result == TaskResult.Failed && message) {
|
|
71
|
-
exports.error(message);
|
|
71
|
+
exports.error(message, exports.IssueSource.TaskInternal);
|
|
72
72
|
}
|
|
73
73
|
else if (result == TaskResult.SucceededWithIssues && message) {
|
|
74
|
-
exports.warning(message);
|
|
74
|
+
exports.warning(message, exports.IssueSource.TaskInternal);
|
|
75
75
|
}
|
|
76
76
|
// task.complete
|
|
77
77
|
var properties = { 'result': TaskResult[result] };
|
|
@@ -240,10 +240,11 @@ function getBoolInput(name, required) {
|
|
|
240
240
|
exports.getBoolInput = getBoolInput;
|
|
241
241
|
/**
|
|
242
242
|
* Gets the value of an feature flag and converts to a bool.
|
|
243
|
-
*
|
|
243
|
+
* @IMPORTANT This method is only for internal Microsoft development. Do not use it for external tasks.
|
|
244
244
|
* @param name name of the feature flag to get.
|
|
245
245
|
* @param defaultValue default value of the feature flag in case it's not found in env. (optional. Default value = false)
|
|
246
246
|
* @returns boolean
|
|
247
|
+
* @deprecated Don't use this for new development. Use getPipelineFeature instead.
|
|
247
248
|
*/
|
|
248
249
|
function getBoolFeatureFlag(ffName, defaultValue) {
|
|
249
250
|
if (defaultValue === void 0) { defaultValue = false; }
|
|
@@ -256,6 +257,24 @@ function getBoolFeatureFlag(ffName, defaultValue) {
|
|
|
256
257
|
return ffValue.toLowerCase() === "true";
|
|
257
258
|
}
|
|
258
259
|
exports.getBoolFeatureFlag = getBoolFeatureFlag;
|
|
260
|
+
/**
|
|
261
|
+
* Gets the value of an task feature and converts to a bool.
|
|
262
|
+
* @IMPORTANT This method is only for internal Microsoft development. Do not use it for external tasks.
|
|
263
|
+
* @param name name of the feature to get.
|
|
264
|
+
* @returns boolean
|
|
265
|
+
*/
|
|
266
|
+
function getPipelineFeature(featureName) {
|
|
267
|
+
var variableName = im._getVariableKey("DistributedTask.Tasks." + featureName);
|
|
268
|
+
var featureValue = process.env[variableName];
|
|
269
|
+
if (!featureValue) {
|
|
270
|
+
exports.debug("Feature '" + featureName + "' not found. Returning false as default.");
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
273
|
+
var boolValue = featureValue.toLowerCase() === "true";
|
|
274
|
+
exports.debug("Feature '" + featureName + "' = '" + featureValue + "'. Processed as '" + boolValue + "'.");
|
|
275
|
+
return boolValue;
|
|
276
|
+
}
|
|
277
|
+
exports.getPipelineFeature = getPipelineFeature;
|
|
259
278
|
/**
|
|
260
279
|
* Gets the value of an input and splits the value using a delimiter (space, comma, etc).
|
|
261
280
|
* Empty values are removed. This function is useful for splitting an input containing a simple
|
|
@@ -708,7 +727,7 @@ function mkdirP(p) {
|
|
|
708
727
|
var testDir = p;
|
|
709
728
|
while (true) {
|
|
710
729
|
// validate the loop is not out of control
|
|
711
|
-
if (stack.length >= (process.env['TASKLIB_TEST_MKDIRP_FAILSAFE'] || 1000)) {
|
|
730
|
+
if (stack.length >= Number(process.env['TASKLIB_TEST_MKDIRP_FAILSAFE'] || 1000)) {
|
|
712
731
|
// let the framework throw
|
|
713
732
|
exports.debug('loop is out of control');
|
|
714
733
|
fs.mkdirSync(p);
|
|
@@ -815,7 +834,7 @@ function cp(source, dest, options, continueOnError, retryCount) {
|
|
|
815
834
|
catch (e) {
|
|
816
835
|
if (retryCount <= 0) {
|
|
817
836
|
if (continueOnError) {
|
|
818
|
-
exports.warning(e);
|
|
837
|
+
exports.warning(e, exports.IssueSource.TaskInternal);
|
|
819
838
|
break;
|
|
820
839
|
}
|
|
821
840
|
else {
|
|
@@ -865,7 +884,7 @@ function retry(func, args, retryOptions) {
|
|
|
865
884
|
catch (e) {
|
|
866
885
|
if (retryOptions.retryCount <= 0) {
|
|
867
886
|
if (retryOptions.continueOnError) {
|
|
868
|
-
exports.warning(e);
|
|
887
|
+
exports.warning(e, exports.IssueSource.TaskInternal);
|
|
869
888
|
break;
|
|
870
889
|
}
|
|
871
890
|
else {
|
|
@@ -965,7 +984,7 @@ function find(findPath, options) {
|
|
|
965
984
|
}
|
|
966
985
|
catch (err) {
|
|
967
986
|
if (err.code == 'ENOENT' && options.skipMissingFiles) {
|
|
968
|
-
exports.warning("No such file or directory: \"" + item.path + "\" - skipping.");
|
|
987
|
+
exports.warning("No such file or directory: \"" + item.path + "\" - skipping.", exports.IssueSource.TaskInternal);
|
|
969
988
|
return "continue";
|
|
970
989
|
}
|
|
971
990
|
throw err;
|
|
@@ -2071,7 +2090,7 @@ exports.ToolRunner = trm.ToolRunner;
|
|
|
2071
2090
|
//-----------------------------------------------------
|
|
2072
2091
|
// async await needs generators in node 4.x+
|
|
2073
2092
|
if (semver.lt(process.versions.node, '4.2.0')) {
|
|
2074
|
-
exports.warning('Tasks require a new agent. Upgrade your agent or node to 4.2.0 or later');
|
|
2093
|
+
exports.warning('Tasks require a new agent. Upgrade your agent or node to 4.2.0 or later', exports.IssueSource.TaskInternal);
|
|
2075
2094
|
}
|
|
2076
2095
|
//-------------------------------------------------------------------
|
|
2077
2096
|
// Populate the vault with sensitive data. Inputs and Endpoints
|