Skip to content

Commit 403feab

Browse files
committed
Refactor logic for determining deployment type
1 parent 0f57d77 commit 403feab

File tree

1 file changed

+35
-34
lines changed

1 file changed

+35
-34
lines changed

src/DeploymentProvider/Providers/WebAppDeploymentProvider.ts

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,48 +10,49 @@ import { addAnnotation } from 'azure-actions-appservice-rest/Utilities/Annotatio
1010
export class WebAppDeploymentProvider extends BaseWebAppDeploymentProvider {
1111

1212
public async DeployWebAppStep() {
13-
var deploymentType;
1413
let appPackage: Package = this.actionParams.package;
1514
let webPackage = appPackage.getPath();
1615

16+
const validTypes = ["war", "jar", "ear", "zip", "static"];
17+
1718
// kudu warm up
1819
await this.kuduServiceUtility.warmpUp();
19-
20-
let packageType = appPackage.getPackageType();
21-
22-
switch(packageType){
23-
case PackageType.war:
24-
core.debug("Initiated deployment via kudu service for webapp war package : "+ webPackage);
25-
deploymentType = "war";
26-
break;
2720

28-
case PackageType.jar:
29-
core.debug("Initiated deployment via kudu service for webapp jar package : "+ webPackage);
30-
deploymentType = "jar";
31-
break;
32-
33-
case PackageType.folder:
34-
let tempPackagePath = utility.generateTemporaryFolderOrZipPath(`${process.env.RUNNER_TEMP}`, false);
35-
webPackage = await zipUtility.archiveFolder(webPackage, "", tempPackagePath) as string;
36-
core.debug("Compressed folder into zip " + webPackage);
37-
core.debug("Initiated deployment via kudu service for webapp package : "+ webPackage);
38-
deploymentType = "zip";
39-
break;
40-
41-
case PackageType.zip:
42-
core.debug("Initiated deployment via kudu service for webapp zip package : "+ webPackage);
43-
deploymentType = "zip";
44-
break;
45-
46-
default:
47-
if (!this.actionParams.type) {
48-
throw new Error('Invalid App Service package or folder path provided: ' + webPackage);
49-
}
50-
break;
21+
// If provided, type paramater takes precidence over file package type
22+
if (this.actionParams.type != null && validTypes.includes(this.actionParams.type.toLowerCase())) {
23+
core.debug("Initiated deployment via kudu service for webapp" + this.actionParams.type + "package : "+ webPackage);
5124
}
5225

53-
if (!this.actionParams.type){
54-
this.actionParams.type = deploymentType;
26+
else {
27+
// Retains the old behavior of determining the package type from the file extension if valid type is not defined
28+
let packageType = appPackage.getPackageType();
29+
switch(packageType){
30+
case PackageType.war:
31+
core.debug("Initiated deployment via kudu service for webapp war package : "+ webPackage);
32+
this.actionParams.type = "war";
33+
break;
34+
35+
case PackageType.jar:
36+
core.debug("Initiated deployment via kudu service for webapp jar package : "+ webPackage);
37+
this.actionParams.type = "jar";
38+
break;
39+
40+
case PackageType.folder:
41+
let tempPackagePath = utility.generateTemporaryFolderOrZipPath(`${process.env.RUNNER_TEMP}`, false);
42+
webPackage = await zipUtility.archiveFolder(webPackage, "", tempPackagePath) as string;
43+
core.debug("Compressed folder into zip " + webPackage);
44+
core.debug("Initiated deployment via kudu service for webapp package : "+ webPackage);
45+
this.actionParams.type = "zip";
46+
break;
47+
48+
case PackageType.zip:
49+
core.debug("Initiated deployment via kudu service for webapp zip package : "+ webPackage);
50+
this.actionParams.type = "zip";
51+
break;
52+
53+
default:
54+
throw new Error('Invalid App Service package: ' + webPackage + ' or type provided: ' + this.actionParams.type);
55+
}
5556
}
5657

5758
this.deploymentID = await this.kuduServiceUtility.deployUsingOneDeploy(webPackage, { slotName: this.actionParams.slotName, commitMessage:this.actionParams.commitMessage },

0 commit comments

Comments
 (0)