Skip to content

Commit 8f0f376

Browse files
authored
Bring back WIF support (#18188)
1 parent f5d5c22 commit 8f0f376

17 files changed

+1087
-152
lines changed

Tasks/AzureWebAppV1/azurermwebappdeployment.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import tl = require('azure-pipelines-task-lib/task');
22
import path = require('path');
3+
import * as Endpoint from 'azure-pipelines-tasks-azure-arm-rest-v2/azure-arm-endpoint';
34
import { TaskParameters, TaskParametersUtility } from './taskparameters';
45
import { DeploymentFactory } from './deploymentProvider/DeploymentFactory';
5-
import * as Endpoint from 'azure-pipelines-tasks-azurermdeploycommon/azure-arm-rest/azure-arm-endpoint';
66

77
async function main() {
88
let isDeploymentSuccess: boolean = true;
99

1010
try {
1111
tl.setResourcePath(path.join( __dirname, 'task.json'));
12-
tl.setResourcePath(path.join( __dirname, 'node_modules/azure-pipelines-tasks-azurermdeploycommon/module.json'));
12+
tl.setResourcePath(path.join( __dirname, 'node_modules/azure-pipelines-tasks-azure-arm-rest-v2/module.json'));
1313
var taskParams: TaskParameters = await TaskParametersUtility.getParameters();
1414
var deploymentFactory: DeploymentFactory = new DeploymentFactory(taskParams);
1515
var deploymentProvider = await deploymentFactory.GetDeploymentProvider();

Tasks/AzureWebAppV1/deploymentProvider/AzureRmWebAppDeploymentProvider.ts

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
1-
import * as ParameterParser from 'azure-pipelines-tasks-azurermdeploycommon/operations/ParameterParserUtility'
2-
3-
import { AzureAppService } from 'azure-pipelines-tasks-azurermdeploycommon/azure-arm-rest/azure-arm-app-service';
4-
import { AzureAppServiceUtility } from 'azure-pipelines-tasks-azurermdeploycommon/operations/AzureAppServiceUtility';
5-
import { AzureDeployPackageArtifactAlias } from 'azure-pipelines-tasks-azurermdeploycommon/Constants';
6-
import { AzureEndpoint } from 'azure-pipelines-tasks-azurermdeploycommon/azure-arm-rest/azureModels';
7-
import { AzureRmEndpointAuthenticationScheme } from 'azure-pipelines-tasks-azurermdeploycommon/azure-arm-rest/constants';
8-
import { IWebAppDeploymentProvider } from './IWebAppDeploymentProvider';
9-
import { Kudu } from 'azure-pipelines-tasks-azurermdeploycommon/azure-arm-rest/azure-arm-app-service-kudu';
10-
import { KuduServiceUtility } from 'azure-pipelines-tasks-azurermdeploycommon/operations/KuduServiceUtility';
11-
import { PackageUtility } from 'azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/packageUtility';
12-
import { TaskParameters } from '../taskparameters';
13-
import { addReleaseAnnotation } from 'azure-pipelines-tasks-azurermdeploycommon/operations/ReleaseAnnotationUtility';
14-
151
import tl = require('azure-pipelines-task-lib/task');
16-
172
import publishProfileUtility = require("azure-pipelines-tasks-utility-common/publishProfileUtility");
3+
import { AzureAppService } from 'azure-pipelines-tasks-azure-arm-rest-v2/azure-arm-app-service';
4+
import { Kudu } from 'azure-pipelines-tasks-azure-arm-rest-v2/azure-arm-app-service-kudu';
5+
import { AzureEndpoint } from 'azure-pipelines-tasks-azure-arm-rest-v2/azureModels';
6+
import { AzureAppServiceUtility } from 'azure-pipelines-tasks-azure-arm-rest-v2/azureAppServiceUtility';
7+
import { AzureRmEndpointAuthenticationScheme, AzureDeployPackageArtifactAlias } from 'azure-pipelines-tasks-azure-arm-rest-v2/constants';
8+
import { PackageUtility } from 'azure-pipelines-tasks-webdeployment-common/packageUtility';
9+
import * as ParameterParser from 'azure-pipelines-tasks-webdeployment-common/ParameterParserUtility'
10+
import { TaskParameters } from '../taskparameters';
11+
import { AzureAppServiceUtilityExt } from '../operations/AzureAppServiceUtilityExt';
12+
import { KuduServiceUtility } from '../operations/KuduServiceUtility';
13+
import { addReleaseAnnotation } from '../operations/ReleaseAnnotationUtility';
14+
import { IWebAppDeploymentProvider } from './IWebAppDeploymentProvider';
1815

1916
export class AzureRmWebAppDeploymentProvider implements IWebAppDeploymentProvider {
2017
protected taskParams:TaskParameters;
2118
protected appService: AzureAppService;
2219
protected kuduService: Kudu;
2320
protected appServiceUtility: AzureAppServiceUtility;
21+
protected appServiceUtilityExt: AzureAppServiceUtilityExt;
2422
protected kuduServiceUtility: KuduServiceUtility;
2523
protected virtualApplicationPath: string = "";
2624
protected activeDeploymentID;
@@ -50,9 +48,10 @@ export class AzureRmWebAppDeploymentProvider implements IWebAppDeploymentProvide
5048
let resourceIdSplit = resourceId.split("/");
5149
this.slotName = resourceIdSplit.length === 11 ? resourceIdSplit[10] : "production";
5250
} else {
53-
this.appService = new AzureAppService(this.taskParams.azureEndpoint, this.taskParams.ResourceGroupName, this.taskParams.WebAppName,
51+
this.appService = new AzureAppService(this.taskParams.azureEndpoint, this.taskParams.ResourceGroupName, this.taskParams.WebAppName,
5452
this.taskParams.SlotName, this.taskParams.WebAppKind);
5553
this.appServiceUtility = new AzureAppServiceUtility(this.appService);
54+
this.appServiceUtilityExt = new AzureAppServiceUtilityExt(this.appService);
5655
this.kuduService = await this.appServiceUtility.getKuduService();
5756
this.slotName = this.appService.getSlot();
5857
}
@@ -91,10 +90,10 @@ export class AzureRmWebAppDeploymentProvider implements IWebAppDeploymentProvide
9190

9291
if(this.taskParams.ConfigurationSettings) {
9392
var customConfigurationSettings = ParameterParser.parse(this.taskParams.ConfigurationSettings);
94-
await this.appServiceUtility.updateConfigurationSettings(customConfigurationSettings);
93+
await this.appService.updateConfigurationSettings(customConfigurationSettings);
9594
}
9695

97-
await this.appServiceUtility.updateScmTypeAndConfigurationDetails();
96+
await this.appServiceUtilityExt.updateScmTypeAndConfigurationDetails();
9897
}
9998
}
10099
}

Tasks/AzureWebAppV1/deploymentProvider/BuiltInLinuxWebAppDeploymentProvider.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
import * as ParameterParser from 'azure-pipelines-tasks-azurermdeploycommon/operations/ParameterParserUtility'
2-
3-
import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider';
4-
import { PackageType } from 'azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/packageUtility';
5-
61
import tl = require('azure-pipelines-task-lib/task');
7-
8-
var webCommonUtility = require('azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/utility.js');
9-
var deployUtility = require('azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/utility.js');
10-
var zipUtility = require('azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/ziputility.js');
2+
var webCommonUtility = require('azure-pipelines-tasks-webdeployment-common/utility');
3+
var zipUtility = require('azure-pipelines-tasks-webdeployment-common/ziputility');
4+
import { PackageType } from 'azure-pipelines-tasks-webdeployment-common/packageUtility';
5+
import * as ParameterParser from 'azure-pipelines-tasks-webdeployment-common/ParameterParserUtility'
6+
import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider';
117

128
const initScriptAppSetting: string = "-INIT_SCRIPT";
139

@@ -18,14 +14,14 @@ export class BuiltInLinuxWebAppDeploymentProvider extends AzureRmWebAppDeploymen
1814
let packageType = this.taskParams.Package.getPackageType();
1915
let deploymentMethodtelemetry = packageType === PackageType.war ? '{"deploymentMethod":"War Deploy"}' : '{"deploymentMethod":"Zip Deploy"}';
2016
console.log("##vso[telemetry.publish area=TaskDeploymentMethod;feature=AzureWebAppDeployment]" + deploymentMethodtelemetry);
21-
17+
2218
tl.debug('Performing Linux built-in package deployment');
23-
19+
2420
await this.kuduServiceUtility.warmpUp();
25-
21+
2622
switch(packageType){
2723
case PackageType.folder:
28-
let tempPackagePath = deployUtility.generateTemporaryFolderOrZipPath(tl.getVariable('AGENT.TEMPDIRECTORY'), false);
24+
let tempPackagePath = webCommonUtility.generateTemporaryFolderOrZipPath(tl.getVariable('AGENT.TEMPDIRECTORY'), false);
2925
let archivedWebPackage = await zipUtility.archiveFolder(this.taskParams.Package.getPath(), "", tempPackagePath);
3026
tl.debug("Compressed folder into zip " + archivedWebPackage);
3127
this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(archivedWebPackage);

Tasks/AzureWebAppV1/deploymentProvider/DeploymentFactory.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
import tl = require('azure-pipelines-task-lib/task');
2+
import { AzureRmEndpointAuthenticationScheme } from 'azure-pipelines-tasks-azure-arm-rest-v2/constants';
3+
import { PackageType } from 'azure-pipelines-tasks-webdeployment-common/packageUtility';
14
import { TaskParameters, DeploymentType } from '../taskparameters';
25
import { BuiltInLinuxWebAppDeploymentProvider } from './BuiltInLinuxWebAppDeploymentProvider';
36
import { IWebAppDeploymentProvider } from './IWebAppDeploymentProvider';
4-
import { WindowsWebAppZipDeployProvider } from './WindowsWebAppZipDeployProvider';
57
import { WindowsWebAppRunFromZipProvider } from './WindowsWebAppRunFromZipProvider';
6-
import tl = require('azure-pipelines-task-lib/task');
7-
import { PackageType } from 'azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/packageUtility';
88
import { WindowsWebAppWarDeployProvider } from './WindowsWebAppWarDeployProvider';
9-
import { AzureRmEndpointAuthenticationScheme } from 'azure-pipelines-tasks-azurermdeploycommon/azure-arm-rest/constants';
9+
import { WindowsWebAppZipDeployProvider } from './WindowsWebAppZipDeployProvider';
1010

1111
export class DeploymentFactory {
1212

Tasks/AzureWebAppV1/deploymentProvider/WindowsWebAppRunFromZipProvider.ts

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,24 @@
1-
import * as ParameterParser from 'azure-pipelines-tasks-azurermdeploycommon/operations/ParameterParserUtility'
2-
3-
import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider';
4-
import { DeploymentType } from '../taskparameters';
5-
import { FileTransformsUtility } from 'azure-pipelines-tasks-azurermdeploycommon/operations/FileTransformsUtility.js';
6-
import { PackageType } from 'azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/packageUtility';
7-
import { addReleaseAnnotation } from 'azure-pipelines-tasks-azurermdeploycommon/operations/ReleaseAnnotationUtility';
8-
91
import tl = require('azure-pipelines-task-lib/task');
10-
11-
var deployUtility = require('azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/utility.js');
12-
var zipUtility = require('azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/ziputility.js');
2+
var deployUtility = require('azure-pipelines-tasks-webdeployment-common/utility');
3+
var zipUtility = require('azure-pipelines-tasks-webdeployment-common/ziputility');
4+
import { PackageType } from 'azure-pipelines-tasks-webdeployment-common/packageUtility';
5+
import * as ParameterParser from 'azure-pipelines-tasks-webdeployment-common/ParameterParserUtility'
6+
import { DeploymentType } from '../taskparameters';
7+
import { FileTransformsUtility } from '../operations/FileTransformsUtility';
8+
import { addReleaseAnnotation } from '../operations/ReleaseAnnotationUtility';
9+
import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider';
1310

1411
const oldRunFromZipAppSetting: string = '-WEBSITE_RUN_FROM_ZIP';
1512
const runFromZipAppSetting: string = '-WEBSITE_RUN_FROM_PACKAGE 1';
1613

1714
export class WindowsWebAppRunFromZipProvider extends AzureRmWebAppDeploymentProvider {
18-
15+
1916
public async DeployWebAppStep() {
2017
let deploymentMethodtelemetry = '{"deploymentMethod":"Run from Package"}';
2118
console.log("##vso[telemetry.publish area=TaskDeploymentMethod;feature=AzureWebAppDeployment]" + deploymentMethodtelemetry);
2219

2320
var webPackage = await FileTransformsUtility.applyTransformations(this.taskParams.Package.getPath(), this.taskParams.WebConfigParameters, this.taskParams.Package.getPackageType());
24-
21+
2522
if(this.taskParams.DeploymentType === DeploymentType.runFromPackage) {
2623
var _isMSBuildPackage = await this.taskParams.Package.isMSBuildPackage();
2724
if(_isMSBuildPackage) {

Tasks/AzureWebAppV1/deploymentProvider/WindowsWebAppWarDeployProvider.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
1-
import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider';
2-
31
import tl = require('azure-pipelines-task-lib/task');
4-
var webCommonUtility = require('azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/utility.js');
2+
var webCommonUtility = require('azure-pipelines-tasks-webdeployment-common/utility');
3+
import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider';
54

65
export class WindowsWebAppWarDeployProvider extends AzureRmWebAppDeploymentProvider {
7-
6+
87
private zipDeploymentID: string;
98

109
public async DeployWebAppStep() {
1110

1211
tl.debug("Initiated deployment via kudu service for webapp war package : "+ this.taskParams.Package.getPath());
13-
12+
1413
let deploymentMethodtelemetry = '{"deploymentMethod":"War Deploy"}';
1514
console.log("##vso[telemetry.publish area=TaskDeploymentMethod;feature=AzureWebAppDeployment]" + deploymentMethodtelemetry);
1615

1716
await this.kuduServiceUtility.warmpUp();
18-
17+
1918
var warName = this.taskParams.CustomWarName || webCommonUtility.getFileNameFromPath(this.taskParams.Package.getPath(), ".war");
2019

21-
this.zipDeploymentID = await this.kuduServiceUtility.deployUsingWarDeploy(this.taskParams.Package.getPath(),
20+
this.zipDeploymentID = await this.kuduServiceUtility.deployUsingWarDeploy(this.taskParams.Package.getPath(),
2221
{ slotName: this.slotName }, warName);
2322

2423
await this.PostDeploymentStep();
2524
}
26-
25+
2726
public async UpdateDeploymentStatus(isDeploymentSuccess: boolean) {
2827
await super.UpdateDeploymentStatus(isDeploymentSuccess);
2928
if(this.kuduServiceUtility) {

Tasks/AzureWebAppV1/deploymentProvider/WindowsWebAppZipDeployProvider.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
import * as ParameterParser from 'azure-pipelines-tasks-azurermdeploycommon/operations/ParameterParserUtility'
2-
3-
import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider';
4-
import { DeploymentType } from '../taskparameters';
5-
import { FileTransformsUtility } from 'azure-pipelines-tasks-azurermdeploycommon/operations/FileTransformsUtility.js';
6-
import { PackageType } from 'azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/packageUtility';
7-
81
import tl = require('azure-pipelines-task-lib/task');
2+
var deployUtility = require('azure-pipelines-tasks-webdeployment-common/utility');
3+
var zipUtility = require('azure-pipelines-tasks-webdeployment-common/ziputility');
4+
import * as ParameterParser from 'azure-pipelines-tasks-webdeployment-common/ParameterParserUtility'
5+
import { PackageType } from 'azure-pipelines-tasks-webdeployment-common/packageUtility';
6+
import { DeploymentType } from '../taskparameters';
7+
import { FileTransformsUtility } from '../operations/FileTransformsUtility';
8+
import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider';
99

1010
const removeRunFromZipAppSetting: string = '-WEBSITE_RUN_FROM_PACKAGE -WEBSITE_RUN_FROM_ZIP';
11-
var deployUtility = require('azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/utility.js');
12-
var zipUtility = require('azure-pipelines-tasks-azurermdeploycommon/webdeployment-common/ziputility.js');
1311

1412
export class WindowsWebAppZipDeployProvider extends AzureRmWebAppDeploymentProvider {
15-
13+
1614
private zipDeploymentID: string;
17-
15+
1816
public async DeployWebAppStep() {
1917
let deploymentMethodtelemetry = '{"deploymentMethod":"Zip Deploy"}';
2018
console.log("##vso[telemetry.publish area=TaskDeploymentMethod;feature=AzureWebAppDeployment]" + deploymentMethodtelemetry);

Tasks/AzureWebAppV1/make.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
{
2+
"rm": [
3+
{
4+
"items": [
5+
"node_modules/azure-pipelines-tasks-azure-arm-rest-v2/node_modules/azure-pipelines-task-lib"
6+
],
7+
"options": "-Rf"
8+
}
9+
],
210
"externals": {
311
"archivePackages": [
412
{

0 commit comments

Comments
 (0)