diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/en-US/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/en-US/resources.resjson
index dfb1c49dc866..4214956f7665 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/en-US/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/en-US/resources.resjson
@@ -6,6 +6,7 @@
"loc.releaseNotes": "What's new in version 4.*
Supports Zip Deploy, Run From Package, War Deploy [Details here](https://aka.ms/appServiceDeploymentMethods)
Supports App Service Environments
Improved UI for discovering different App service types supported by the task
Run From Package is the preferred deployment method, which makes files in wwwroot folder read-only
Click [here](https://aka.ms/azurermwebdeployreadme) for more information.",
"loc.group.displayName.FileTransformsAndVariableSubstitution": "File Transforms & Variable Substitution Options",
"loc.group.displayName.AdditionalDeploymentOptions": "Additional Deployment Options",
+ "loc.group.displayName.AdditionalDeploymentOptionsLinux": "Additional Deployment Options",
"loc.group.displayName.PostDeploymentAction": "Post Deployment Action",
"loc.group.displayName.ApplicationAndConfigurationSettings": "Application and Configuration Settings",
"loc.input.label.ConnectionType": "Connection type",
@@ -74,6 +75,10 @@
"loc.input.help.XmlVariableSubstitution": "Variables defined in the build or release pipelines will be matched against the 'key' or 'name' entries in the appSettings, applicationSettings, and connectionStrings sections of any config file and parameters.xml. Variable Substitution is run after config transforms.
Note: If same variables are defined in the release pipeline and in the environment, then the environment variables will supersede the release pipeline variables.
",
"loc.input.label.JSONFiles": "JSON variable substitution",
"loc.input.help.JSONFiles": "Provide new line separated list of JSON files to substitute the variable values. Files names are to be provided relative to the root folder.
To substitute JSON variables that are nested or hierarchical, specify them using JSONPath expressions.
For example, to replace the value of ‘ConnectionString’ in the sample below, you need to define a variable as ‘Data.DefaultConnection.ConnectionString’ in the build or release pipeline (or release pipeline's environment).
{
\"Data\": {
\"DefaultConnection\": {
\"ConnectionString\": \"Server=(localdb)\\SQLEXPRESS;Database=MyDB;Trusted_Connection=True\"
}
}
}
Variable Substitution is run after configuration transforms.
Note: pipeline variables are excluded in substitution.",
+ "loc.input.label.DeploymentTypeLinux": "Deployment method",
+ "loc.input.help.DeploymentTypeLinux": "Choose the deployment method for the app.",
+ "loc.input.label.CleanDeploymentFlag": "Enable clean deployment",
+ "loc.input.help.CleanDeploymentFlag": "Deployment mode for complete sync (clean) deployment",
"loc.messages.Invalidwebapppackageorfolderpathprovided": "Invalid App Service package or folder path provided: %s",
"loc.messages.SetParamFilenotfound0": "Set parameters file not found: %s",
"loc.messages.XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully",
@@ -204,6 +209,8 @@
"loc.messages.MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.",
"loc.messages.PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.",
"loc.messages.PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.",
+ "loc.messages.PackageDeploymentInitiatedWithOneDeploy": "Package deployment using One Deploy initiated.",
+ "loc.messages.OneDeployWithIncrementalDeploymentOption": "Deploying using incremental deployment.",
"loc.messages.WarPackageDeploymentInitiated": "Package deployment using WAR Deploy initiated.",
"loc.messages.FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s",
"loc.messages.GoExeNameNotPresent": "Go exe name is not present",
diff --git a/Tasks/AzureRmWebAppDeploymentV4/deploymentProvider/BuiltInLinuxWebAppDeploymentProvider.ts b/Tasks/AzureRmWebAppDeploymentV4/deploymentProvider/BuiltInLinuxWebAppDeploymentProvider.ts
index 152cf585c09e..80c19ea78209 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/deploymentProvider/BuiltInLinuxWebAppDeploymentProvider.ts
+++ b/Tasks/AzureRmWebAppDeploymentV4/deploymentProvider/BuiltInLinuxWebAppDeploymentProvider.ts
@@ -3,6 +3,7 @@ import tl = require('azure-pipelines-task-lib/task');
import { PackageType } from 'azure-pipelines-tasks-webdeployment-common/packageUtility';
import path = require('path');
import * as ParameterParser from 'azure-pipelines-tasks-webdeployment-common/ParameterParserUtility';
+import { DeploymentTypeLinux } from '../operations/TaskParameters';
var webCommonUtility = require('azure-pipelines-tasks-webdeployment-common/utility.js');
var deployUtility = require('azure-pipelines-tasks-webdeployment-common/utility.js');
@@ -52,19 +53,37 @@ export class BuiltInLinuxWebAppDeploymentProvider extends AzureRmWebAppDeploymen
if(!isNewValueUpdated) {
await this.kuduServiceUtility.warmpUp();
}
+
+ var zipDeploy: boolean = this.taskParams.DeploymentTypeLinux === DeploymentTypeLinux.zipDeploy;
+ var isClean: boolean = this.taskParams.CleanDeploymentFlag;
+ if (!zipDeploy && !isClean) {
+ console.log(tl.loc('OneDeployWithIncrementalDeploymentOption'));
+ }
switch(packageType){
case PackageType.folder:
let tempPackagePath = deployUtility.generateTemporaryFolderOrZipPath(tl.getVariable('AGENT.TEMPDIRECTORY'), false);
let archivedWebPackage = await zipUtility.archiveFolder(this.taskParams.Package.getPath(), "", tempPackagePath);
tl.debug("Compressed folder into zip " + archivedWebPackage);
- this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(archivedWebPackage, this.taskParams.TakeAppOfflineFlag,
- { slotName: this.appService.getSlot() });
+ if (zipDeploy) {
+ this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(archivedWebPackage, this.taskParams.TakeAppOfflineFlag,
+ { slotName: this.appService.getSlot() }, true);
+ }
+ else {
+ this.zipDeploymentID = await this.kuduServiceUtility.deployUsingOneDeploy(archivedWebPackage, isClean, this.taskParams.TakeAppOfflineFlag,
+ { slotName: this.appService.getSlot() }, 'Zip', true);
+ }
break;
case PackageType.zip:
- this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(this.taskParams.Package.getPath(), this.taskParams.TakeAppOfflineFlag,
- { slotName: this.appService.getSlot() });
+ if (zipDeploy) {
+ this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(this.taskParams.Package.getPath(), this.taskParams.TakeAppOfflineFlag,
+ { slotName: this.appService.getSlot() }, true);
+ }
+ else {
+ this.zipDeploymentID = await this.kuduServiceUtility.deployUsingOneDeploy(this.taskParams.Package.getPath(), isClean, this.taskParams.TakeAppOfflineFlag,
+ { slotName: this.appService.getSlot() }, 'Zip', true);
+ }
break;
@@ -74,8 +93,14 @@ export class BuiltInLinuxWebAppDeploymentProvider extends AzureRmWebAppDeploymen
var output = await webCommonUtility.archiveFolderForDeployment(false, folderPath);
var webPackage = output.webDeployPkg;
tl.debug("Initiated deployment via kudu service for webapp jar package : "+ webPackage);
- this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(webPackage, this.taskParams.TakeAppOfflineFlag,
- { slotName: this.appService.getSlot() });
+ if (zipDeploy) {
+ this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(webPackage, this.taskParams.TakeAppOfflineFlag,
+ { slotName: this.appService.getSlot() }, true);
+ }
+ else {
+ this.zipDeploymentID = await this.kuduServiceUtility.deployUsingOneDeploy(webPackage, isClean, this.taskParams.TakeAppOfflineFlag,
+ { slotName: this.appService.getSlot() }, 'Jar', true);
+ }
break;
diff --git a/Tasks/AzureRmWebAppDeploymentV4/operations/KuduServiceUtility.ts b/Tasks/AzureRmWebAppDeploymentV4/operations/KuduServiceUtility.ts
index 7cc3560e54a5..7d7ae3c07d8b 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/operations/KuduServiceUtility.ts
+++ b/Tasks/AzureRmWebAppDeploymentV4/operations/KuduServiceUtility.ts
@@ -16,6 +16,7 @@ const physicalRootPath: string = '/site/wwwroot';
const deploymentFolder: string = 'site/deployments';
const manifestFileName: string = 'manifest';
const VSTS_ZIP_DEPLOY: string = 'VSTS_ZIP_DEPLOY';
+const VSTS_ONE_DEPLOY: string = 'VSTS_ONE_DEPLOY';
const VSTS_DEPLOY: string = 'VSTS';
export class KuduServiceUtility {
@@ -158,7 +159,7 @@ export class KuduServiceUtility {
}
}
- public async deployUsingZipDeploy(packagePath: string, appOffline?: boolean, customMessage?: any): Promise {
+ public async deployUsingZipDeploy(packagePath: string, appOffline?: boolean, customMessage?: any, addChecksumHeader?: boolean): Promise {
try {
console.log(tl.loc('PackageDeploymentInitiated'));
@@ -176,7 +177,47 @@ export class KuduServiceUtility {
var deploymentMessage = this._getUpdateHistoryRequest(true, null, customMessage).message;
queryParameters.push('message=' + encodeURIComponent(deploymentMessage));
- let deploymentDetails = await this._appServiceKuduService.zipDeploy(packagePath, queryParameters);
+ let deploymentDetails = await this._appServiceKuduService.zipDeploy(packagePath, queryParameters, addChecksumHeader);
+
+ await this._processDeploymentResponse(deploymentDetails);
+ if(appOffline) {
+ await this._appOfflineKuduService(physicalRootPath, false);
+ }
+
+ console.log(tl.loc('PackageDeploymentSuccess'));
+ return deploymentDetails.id;
+ }
+ catch(error) {
+ tl.error(tl.loc('PackageDeploymentFailed'));
+ throw Error(error);
+ }
+ }
+
+ public async deployUsingOneDeploy(packagePath: string, isClean: boolean, appOffline?: boolean, customMessage?: any, packageType?:string, addChecksumHeader?: boolean): Promise {
+ try {
+ console.log(tl.loc('PackageDeploymentInitiatedWithOneDeploy'));
+
+ if(appOffline) {
+ await this._appOfflineKuduService(physicalRootPath, true);
+ tl.debug('Wait for 5 seconds for app_offline to take effect');
+ await webClient.sleepFor(5);
+ }
+
+ if (!packageType){
+ packageType = 'Zip'
+ }
+
+ let queryParameters: Array = [
+ 'async=true',
+ 'deployer=' + VSTS_ONE_DEPLOY,
+ 'type=' + packageType,
+ 'clean=' + isClean
+ ];
+
+ var deploymentMessage = this._getUpdateHistoryRequest(true, null, customMessage).message;
+ queryParameters.push('message=' + encodeURIComponent(deploymentMessage));
+
+ let deploymentDetails = await this._appServiceKuduService.oneDeploy(packagePath, queryParameters, addChecksumHeader);
await this._processDeploymentResponse(deploymentDetails);
if(appOffline) {
@@ -195,7 +236,7 @@ export class KuduServiceUtility {
public async deployUsingRunFromZip(packagePath: string, customMessage?: any) : Promise {
try {
console.log(tl.loc('PackageDeploymentInitiated'));
-
+
let queryParameters: Array = [
'deployer=' + VSTS_DEPLOY
];
diff --git a/Tasks/AzureRmWebAppDeploymentV4/operations/TaskParameters.ts b/Tasks/AzureRmWebAppDeploymentV4/operations/TaskParameters.ts
index a00b52ee0b6f..a0efa0c2f176 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/operations/TaskParameters.ts
+++ b/Tasks/AzureRmWebAppDeploymentV4/operations/TaskParameters.ts
@@ -10,6 +10,11 @@ export enum DeploymentType {
warDeploy
}
+export enum DeploymentTypeLinux {
+ oneDeploy,
+ zipDeploy
+}
+
type AdditionalArgumentsTelemetry = {
deploymentMethod: DeploymentType;
doubleQuoteCount: number;
@@ -109,6 +114,10 @@ export class TaskParametersUtility {
taskParameters.AdditionalArguments = tl.getInput('AdditionalArguments', false) || '';
}
}
+ else if(taskParameters.isLinuxApp) {
+ taskParameters.DeploymentTypeLinux = this.getDeploymentTypeLinux(tl.getInput('DeploymentTypeLinux', false));
+ taskParameters.CleanDeploymentFlag = tl.getBoolInput('CleanDeploymentFlag', false);
+ }
else {
// Retry Attempt is passed by default
taskParameters.AdditionalArguments = '-retryAttempts:6 -retryInterval:10000';
@@ -160,6 +169,13 @@ export class TaskParametersUtility {
}
}
+ private static getDeploymentTypeLinux(type): DeploymentTypeLinux {
+ switch(type) {
+ case "oneDeploy": return DeploymentTypeLinux.oneDeploy;
+ case "zipDeploy": return DeploymentTypeLinux.zipDeploy;
+ }
+ }
+
private static _getAdditionalArgumentsTelemetry(additionalArguments: string, deploymentType: DeploymentType): AdditionalArgumentsTelemetry {
const telemetry = {
deploymentMethod: deploymentType,
@@ -272,6 +288,8 @@ export interface TaskParameters {
XmlVariableSubstitution?: boolean;
UseWebDeploy?: boolean;
DeploymentType?: DeploymentType;
+ DeploymentTypeLinux?: DeploymentTypeLinux;
+ CleanDeploymentFlag?: boolean;
RemoveAdditionalFilesFlag?: boolean;
SetParametersFile?: string;
ExcludeFilesFromAppDataFlag?: boolean;
diff --git a/Tasks/AzureRmWebAppDeploymentV4/package-lock.json b/Tasks/AzureRmWebAppDeploymentV4/package-lock.json
index 7b1f4d12cb9d..796c15e3892a 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/package-lock.json
+++ b/Tasks/AzureRmWebAppDeploymentV4/package-lock.json
@@ -17,7 +17,7 @@
"@types/jsonwebtoken": {
"version": "8.5.9",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz",
- "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==",
+ "integrity": "sha1-LAZOywsxKNg30nZKoLEXsP9uRYY=",
"requires": {
"@types/node": "*"
}
@@ -101,18 +101,18 @@
"async-mutex": {
"version": "0.4.1",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/async-mutex/-/async-mutex-0.4.1.tgz",
- "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==",
+ "integrity": "sha1-vM9VuW8rr435DteYy1VEofbuTCw=",
"requires": {
"tslib": "^2.4.0"
}
},
"azure-devops-node-api": {
- "version": "14.0.2",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-devops-node-api/-/azure-devops-node-api-14.0.2.tgz",
- "integrity": "sha512-TwjAEnWnOSZ2oypkDyqppgvJw43qArEfPiJtEWLL3NBgdvAuOuB0xgFz/Eiz4H6Dk0Yv52wCodZxtZvAMhJXwQ==",
+ "version": "14.1.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-devops-node-api/-/azure-devops-node-api-14.1.0.tgz",
+ "integrity": "sha1-7FOT3p+hRjmd6qtpBOQdoD7c4YA=",
"requires": {
"tunnel": "0.0.6",
- "typed-rest-client": "^2.0.1"
+ "typed-rest-client": "2.1.0"
}
},
"azure-pipelines-task-lib": {
@@ -138,9 +138,9 @@
}
},
"azure-pipelines-tasks-azure-arm-rest": {
- "version": "3.246.4",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-azure-arm-rest/-/azure-pipelines-tasks-azure-arm-rest-3.246.4.tgz",
- "integrity": "sha512-SXpvlnKUB5J73k1L7KpYDvGE+nZLZxIeXyjJaSilKuTm2RMcFZqzahzZGyfHMXSyufusDMT/Msg1lByYMMDT1w==",
+ "version": "3.251.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-azure-arm-rest/-/azure-pipelines-tasks-azure-arm-rest-3.251.0.tgz",
+ "integrity": "sha1-9989r2zWGXLLREIAQHuYci00+EM=",
"requires": {
"@types/jsonwebtoken": "^8.5.8",
"@types/mocha": "^5.2.7",
@@ -162,53 +162,31 @@
"@types/node": {
"version": "10.17.60",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz",
- "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw=="
+ "integrity": "sha1-NfPWIT2u2V2n8Pc+dbzGmA6QWXs="
},
"@types/q": {
"version": "1.5.4",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/q/-/q-1.5.4.tgz",
- "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug=="
+ "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ="
},
"agent-base": {
"version": "5.1.1",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/agent-base/-/agent-base-5.1.1.tgz",
- "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g=="
+ "integrity": "sha1-6Ps/JClZ20TWO+Zl23qOc5U3oyw="
},
"https-proxy-agent": {
"version": "4.0.0",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
- "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
+ "integrity": "sha1-cCtx+1UgoTKmbeH2dUHZ5iFU2Cs=",
"requires": {
"agent-base": "5",
"debug": "4"
}
},
- "msalv2": {
- "version": "npm:@azure/msal-node@2.15.0",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@azure/msal-node/-/msal-node-2.15.0.tgz",
- "integrity": "sha1-UL+OaSpmVgJ8Bzp12HeopHiq/f0=",
- "requires": {
- "@azure/msal-common": "14.15.0",
- "jsonwebtoken": "^9.0.0",
- "uuid": "^8.3.0"
- },
- "dependencies": {
- "@azure/msal-common": {
- "version": "14.15.0",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@azure/msal-common/-/msal-common-14.15.0.tgz",
- "integrity": "sha1-DiesC7iP4QD0+NFgW2TVwmhjalU="
- }
- }
- },
"q": {
"version": "1.5.1",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/q/-/q-1.5.1.tgz",
- "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw=="
- },
- "uuid": {
- "version": "8.3.2",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I="
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
}
}
},
@@ -310,23 +288,29 @@
"buffer-equal-constant-time": {
"version": "1.0.1",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
+ "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
"buffer-fill": {
"version": "1.0.0",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/buffer-fill/-/buffer-fill-1.0.0.tgz",
"integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
},
- "call-bind": {
- "version": "1.0.7",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "call-bind-apply-helpers": {
+ "version": "1.0.1",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
+ "integrity": "sha1-MuWJLmNhspsLVFum93YzeNrKKEA=",
"requires": {
- "es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
+ "function-bind": "^1.1.2"
+ }
+ },
+ "call-bound": {
+ "version": "1.0.3",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/call-bound/-/call-bound-1.0.3.tgz",
+ "integrity": "sha1-Qc/QMrWT45F2pxUzq084SqBP1oE=",
+ "requires": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "get-intrinsic": "^1.2.6"
}
},
"compress-commons": {
@@ -384,29 +368,29 @@
"ms": "2.1.2"
}
},
- "define-data-property": {
- "version": "1.1.4",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "requires": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- }
- },
"des.js": {
"version": "1.1.0",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/des.js/-/des.js-1.1.0.tgz",
- "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
+ "integrity": "sha1-HTf1dm87v/Tuljjocah2jBc7gdo=",
"requires": {
"inherits": "^2.0.1",
"minimalistic-assert": "^1.0.0"
}
},
+ "dunder-proto": {
+ "version": "1.0.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/dunder-proto/-/dunder-proto-1.0.0.tgz",
+ "integrity": "sha1-wvzgmLPI+ImVVJBfQ3e22F2rqoA=",
+ "requires": {
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ }
+ },
"ecdsa-sig-formatter": {
"version": "1.0.11",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "integrity": "sha1-rg8PothQRe8UqBfao86azQSJ5b8=",
"requires": {
"safe-buffer": "^5.0.1"
}
@@ -420,17 +404,22 @@
}
},
"es-define-property": {
- "version": "1.0.0",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "requires": {
- "get-intrinsic": "^1.2.4"
- }
+ "version": "1.0.1",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha1-mD6y+aZyTpMD9hrd8BHHLgngsPo="
},
"es-errors": {
"version": "1.3.0",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
+ "integrity": "sha1-BfdaJdq5jk+x3NXhRywFRtUFfI8="
+ },
+ "es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha1-3bVc1HrC4kBwEmC8Ko4x7LZD2UE=",
+ "requires": {
+ "es-errors": "^1.3.0"
+ }
},
"file-uri-to-path": {
"version": "1.0.0",
@@ -458,15 +447,20 @@
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
},
"get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "version": "1.2.6",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/get-intrinsic/-/get-intrinsic-1.2.6.tgz",
+ "integrity": "sha1-Q9090Oe0m4Ky38rRDcgkv3/CZdU=",
"requires": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "dunder-proto": "^1.0.0",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.0.0"
}
},
"glob": {
@@ -493,35 +487,19 @@
}
},
"gopd": {
- "version": "1.0.1",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "requires": {
- "get-intrinsic": "^1.1.3"
- }
+ "version": "1.2.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha1-ifVrghe9vIgCvSmd9tfxCB1+UaE="
},
"graceful-fs": {
"version": "4.2.11",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
},
- "has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "requires": {
- "es-define-property": "^1.0.0"
- }
- },
- "has-proto": {
- "version": "1.0.3",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q=="
- },
"has-symbols": {
- "version": "1.0.3",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ "version": "1.1.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha1-/JxqeDoISVHQuXH+EBjegTcHozg="
},
"hasown": {
"version": "2.0.2",
@@ -580,12 +558,12 @@
"js-md4": {
"version": "0.3.2",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/js-md4/-/js-md4-0.3.2.tgz",
- "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA=="
+ "integrity": "sha1-zTs9wEWwxARVbIHdtXVsI+WdfPU="
},
"jsonwebtoken": {
"version": "9.0.2",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
- "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
+ "integrity": "sha1-Zf+R9KvvF4RpfUCVK7GZjFBMqvM=",
"requires": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
@@ -602,14 +580,14 @@
"semver": {
"version": "7.6.3",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
+ "integrity": "sha1-mA97VVC8F1+03AlAMIVif56zMUM="
}
}
},
"jwa": {
"version": "1.4.1",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "integrity": "sha1-dDwymFy56YZVUw1TZBtmyGRbA5o=",
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
@@ -619,7 +597,7 @@
"jws": {
"version": "3.2.2",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "integrity": "sha1-ABCZ82OUaMlBQADpmZX6UvtHgwQ=",
"requires": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
@@ -641,37 +619,37 @@
"lodash.includes": {
"version": "4.3.0",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
+ "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
},
"lodash.isboolean": {
"version": "3.0.3",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
+ "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
},
"lodash.isinteger": {
"version": "4.0.4",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
+ "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
},
"lodash.isnumber": {
"version": "3.0.3",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
+ "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
},
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
+ "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
},
"lodash.isstring": {
"version": "4.0.1",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
+ "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
},
"lodash.once": {
"version": "4.1.1",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
+ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
},
"ltx": {
"version": "2.8.0",
@@ -681,6 +659,11 @@
"inherits": "^2.0.1"
}
},
+ "math-intrinsics": {
+ "version": "1.0.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/math-intrinsics/-/math-intrinsics-1.0.0.tgz",
+ "integrity": "sha1-TgS/h8hapR6Q0HjawiUrTrUmCBc="
+ },
"mime-db": {
"version": "1.52.0",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mime-db/-/mime-db-1.52.0.tgz",
@@ -697,7 +680,7 @@
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc="
},
"minimatch": {
"version": "3.0.5",
@@ -734,6 +717,28 @@
}
}
},
+ "msalv2": {
+ "version": "npm:@azure/msal-node@2.16.2",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@azure/msal-node/-/msal-node-2.16.2.tgz",
+ "integrity": "sha1-Prdo02iD6m+ak5wLW0Z7UY54//w=",
+ "requires": {
+ "@azure/msal-common": "14.16.0",
+ "jsonwebtoken": "^9.0.0",
+ "uuid": "^8.3.0"
+ },
+ "dependencies": {
+ "@azure/msal-common": {
+ "version": "14.16.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@azure/msal-common/-/msal-common-14.16.0.tgz",
+ "integrity": "sha1-80cPyux4jb5QhZlSzUmTQL2iPXo="
+ },
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I="
+ }
+ }
+ },
"node-addon-api": {
"version": "1.7.2",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/node-addon-api/-/node-addon-api-1.7.2.tgz",
@@ -742,7 +747,7 @@
"node-fetch": {
"version": "2.7.0",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "integrity": "sha1-0PD6bj4twdJ+/NitmdVQvalNGH0=",
"requires": {
"whatwg-url": "^5.0.0"
}
@@ -772,9 +777,9 @@
}
},
"object-inspect": {
- "version": "1.13.2",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g=="
+ "version": "1.13.3",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/object-inspect/-/object-inspect-1.13.3.tgz",
+ "integrity": "sha1-8UwYPeURMCQ9bRiuFJN1/1DqSIo="
},
"once": {
"version": "1.4.0",
@@ -805,9 +810,9 @@
"integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg=="
},
"qs": {
- "version": "6.13.0",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "version": "6.13.1",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/qs/-/qs-6.13.1.tgz",
+ "integrity": "sha1-POX8cr06gXG4XJm5PGXdILfRsW4=",
"requires": {
"side-channel": "^1.0.6"
}
@@ -879,19 +884,6 @@
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
},
- "set-function-length": {
- "version": "1.2.2",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "requires": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- }
- },
"shelljs": {
"version": "0.8.5",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/shelljs/-/shelljs-0.8.5.tgz",
@@ -903,14 +895,47 @@
}
},
"side-channel": {
- "version": "1.0.6",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "version": "1.1.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha1-w/z/nE2pMnhIczNeyXZfqU/2a8k=",
"requires": {
- "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ }
+ },
+ "side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha1-EMtZhCYxFdO3oOM2WR4pCoMK+K0=",
+ "requires": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ }
+ },
+ "side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha1-1rtrN5Asb+9RdOX1M/q0xzKib0I=",
+ "requires": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ }
+ },
+ "side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha1-Ed2hnVNo5Azp7CvcH7DsvAeQ7Oo=",
+ "requires": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
}
},
"string_decoder": {
@@ -955,7 +980,7 @@
"tr46": {
"version": "0.0.3",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
},
"truncate-utf8-bytes": {
"version": "1.0.2",
@@ -966,19 +991,19 @@
}
},
"tslib": {
- "version": "2.7.0",
- "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/tslib/-/tslib-2.7.0.tgz",
- "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA=="
+ "version": "2.8.1",
+ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha1-YS7+TtI11Wfoq6Xypfq3AoCt6D8="
},
"tunnel": {
"version": "0.0.6",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/tunnel/-/tunnel-0.0.6.tgz",
- "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
+ "integrity": "sha1-cvExSzSlsZLbASMk3yzFh8pH+Sw="
},
"typed-rest-client": {
"version": "2.1.0",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/typed-rest-client/-/typed-rest-client-2.1.0.tgz",
- "integrity": "sha512-Nel9aPbgSzRxfs1+4GoSB4wexCF+4Axlk7OSGVQCMa+4fWcyxIsN/YNmkp0xTT2iQzMD98h8yFLav/cNaULmRA==",
+ "integrity": "sha1-8Exs/KvGASwtA2uAbqrEVWBPFZg=",
"requires": {
"des.js": "^1.1.0",
"js-md4": "^0.3.2",
@@ -996,7 +1021,7 @@
"underscore": {
"version": "1.13.7",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/underscore/-/underscore-1.13.7.tgz",
- "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g=="
+ "integrity": "sha1-lw4zljr5p92iKPF+voOZ5fvmOhA="
},
"utf8-byte-length": {
"version": "1.0.5",
@@ -1016,12 +1041,12 @@
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
},
"whatwg-url": {
"version": "5.0.0",
"resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
diff --git a/Tasks/AzureRmWebAppDeploymentV4/package.json b/Tasks/AzureRmWebAppDeploymentV4/package.json
index fff559535dca..d6b02956a212 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/package.json
+++ b/Tasks/AzureRmWebAppDeploymentV4/package.json
@@ -22,7 +22,7 @@
"@types/q": "1.0.7",
"agent-base": "^6.0.2",
"azure-pipelines-task-lib": "4.11.0",
- "azure-pipelines-tasks-azure-arm-rest": "^3.246.4",
+ "azure-pipelines-tasks-azure-arm-rest": "^3.251.0",
"azure-pipelines-tasks-webdeployment-common": "4.243.1",
"moment": "^2.29.4",
"q": "1.4.1",
diff --git a/Tasks/AzureRmWebAppDeploymentV4/task.json b/Tasks/AzureRmWebAppDeploymentV4/task.json
index 12903c3e3491..86a503ef89c8 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/task.json
+++ b/Tasks/AzureRmWebAppDeploymentV4/task.json
@@ -16,8 +16,8 @@
],
"author": "Microsoft Corporation",
"version": {
- "Major": 4,
- "Minor": 247,
+ "Major": 5,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "What's new in version 4.*
Supports Zip Deploy, Run From Package, War Deploy [Details here](https://aka.ms/appServiceDeploymentMethods)
Supports App Service Environments
Improved UI for discovering different App service types supported by the task
Run From Package is the preferred deployment method, which makes files in wwwroot folder read-only
Click [here](https://aka.ms/azurermwebdeployreadme) for more information.",
@@ -35,6 +35,12 @@
"isExpanded": false,
"visibleRule": "ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != \"\" && Package NotEndsWith .war && Package NotEndsWith .jar"
},
+ {
+ "name": "AdditionalDeploymentOptionsLinux",
+ "displayName": "Additional Deployment Options",
+ "isExpanded": false,
+ "visibleRule": "ConnectionType = AzureRM && WebAppKind = webAppLinux"
+ },
{
"name": "PostDeploymentAction",
"displayName": "Post Deployment Action",
@@ -448,6 +454,29 @@
"defaultValue": "",
"groupName": "FileTransformsAndVariableSubstitution",
"helpMarkDown": "Provide new line separated list of JSON files to substitute the variable values. Files names are to be provided relative to the root folder.
To substitute JSON variables that are nested or hierarchical, specify them using JSONPath expressions.
For example, to replace the value of ‘ConnectionString’ in the sample below, you need to define a variable as ‘Data.DefaultConnection.ConnectionString’ in the build or release pipeline (or release pipeline's environment).
{
\"Data\": {
\"DefaultConnection\": {
\"ConnectionString\": \"Server=(localdb)\\SQLEXPRESS;Database=MyDB;Trusted_Connection=True\"
}
}
}
Variable Substitution is run after configuration transforms.
Note: pipeline variables are excluded in substitution."
+ },
+ {
+ "name": "DeploymentTypeLinux",
+ "type": "pickList",
+ "label": "Deployment method",
+ "defaultValue": "oneDeploy",
+ "required": true,
+ "groupName": "AdditionalDeploymentOptionsLinux",
+ "options": {
+ "oneDeploy": "One Deploy",
+ "zipDeploy": "Zip Deploy"
+ },
+ "helpMarkDown": "Choose the deployment method for the app."
+ },
+ {
+ "name": "CleanDeploymentFlag",
+ "type": "boolean",
+ "label": "Enable clean deployment",
+ "required": false,
+ "defaultValue": "true",
+ "groupName": "AdditionalDeploymentOptionsLinux",
+ "visibleRule": "DeploymentTypeLinux == oneDeploy",
+ "helpMarkDown": "Deployment mode for complete sync (clean) deployment"
}
],
"outputVariables": [
@@ -634,6 +663,8 @@
"MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.",
"PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.",
"PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.",
+ "PackageDeploymentInitiatedWithOneDeploy": "Package deployment using One Deploy initiated.",
+ "OneDeployWithIncrementalDeploymentOption": "Deploying using incremental deployment.",
"WarPackageDeploymentInitiated": "Package deployment using WAR Deploy initiated.",
"FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s",
"GoExeNameNotPresent": "Go exe name is not present",
diff --git a/Tasks/AzureRmWebAppDeploymentV4/task.loc.json b/Tasks/AzureRmWebAppDeploymentV4/task.loc.json
index 2b8f59691030..f7ff1a75bd98 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/task.loc.json
+++ b/Tasks/AzureRmWebAppDeploymentV4/task.loc.json
@@ -16,8 +16,8 @@
],
"author": "Microsoft Corporation",
"version": {
- "Major": 4,
- "Minor": 247,
+ "Major": 5,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "ms-resource:loc.releaseNotes",
@@ -35,6 +35,12 @@
"isExpanded": false,
"visibleRule": "ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != \"\" && Package NotEndsWith .war && Package NotEndsWith .jar"
},
+ {
+ "name": "AdditionalDeploymentOptionsLinux",
+ "displayName": "ms-resource:loc.group.displayName.AdditionalDeploymentOptionsLinux",
+ "isExpanded": false,
+ "visibleRule": "ConnectionType = AzureRM && WebAppKind = webAppLinux"
+ },
{
"name": "PostDeploymentAction",
"displayName": "ms-resource:loc.group.displayName.PostDeploymentAction",
@@ -448,6 +454,29 @@
"defaultValue": "",
"groupName": "FileTransformsAndVariableSubstitution",
"helpMarkDown": "ms-resource:loc.input.help.JSONFiles"
+ },
+ {
+ "name": "DeploymentTypeLinux",
+ "type": "pickList",
+ "label": "ms-resource:loc.input.label.DeploymentTypeLinux",
+ "defaultValue": "oneDeploy",
+ "required": true,
+ "groupName": "AdditionalDeploymentOptionsLinux",
+ "options": {
+ "oneDeploy": "One Deploy",
+ "zipDeploy": "Zip Deploy"
+ },
+ "helpMarkDown": "ms-resource:loc.input.help.DeploymentTypeLinux"
+ },
+ {
+ "name": "CleanDeploymentFlag",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.CleanDeploymentFlag",
+ "required": false,
+ "defaultValue": "true",
+ "groupName": "AdditionalDeploymentOptionsLinux",
+ "visibleRule": "DeploymentTypeLinux == oneDeploy",
+ "helpMarkDown": "ms-resource:loc.input.help.CleanDeploymentFlag"
}
],
"outputVariables": [
@@ -634,6 +663,8 @@
"MultipleResourceGroupFoundForAppService": "ms-resource:loc.messages.MultipleResourceGroupFoundForAppService",
"PackageDeploymentUsingZipDeployFailed": "ms-resource:loc.messages.PackageDeploymentUsingZipDeployFailed",
"PackageDeploymentInitiated": "ms-resource:loc.messages.PackageDeploymentInitiated",
+ "PackageDeploymentInitiatedWithOneDeploy": "ms-resource:loc.messages.PackageDeploymentInitiatedWithOneDeploy",
+ "OneDeployWithIncrementalDeploymentOption": "ms-resource:loc.messages.OneDeployWithIncrementalDeploymentOption",
"WarPackageDeploymentInitiated": "ms-resource:loc.messages.WarPackageDeploymentInitiated",
"FailedToGetDeploymentLogs": "ms-resource:loc.messages.FailedToGetDeploymentLogs",
"GoExeNameNotPresent": "ms-resource:loc.messages.GoExeNameNotPresent",