@@ -10,48 +10,49 @@ import { addAnnotation } from 'azure-actions-appservice-rest/Utilities/Annotatio
1010export 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