Skip to content

Commit 097e7ac

Browse files
committed
check and delete php app and release.zip
1 parent edb5e27 commit 097e7ac

File tree

2 files changed

+86
-29
lines changed

2 files changed

+86
-29
lines changed

lib/DeploymentProvider/Providers/WebAppDeploymentProvider.js

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -83,21 +83,7 @@ class WebAppDeploymentProvider extends BaseWebAppDeploymentProvider_1.BaseWebApp
8383
let tempPackagePath = utility.generateTemporaryFolderOrZipPath(`${process.env.RUNNER_TEMP}`, false);
8484
// exluding release.zip while creating zip for deployment.
8585
yield this.printFilesInDirectory(webPackage);
86-
core.info("Print webPackage " + webPackage);
87-
core.info("Print tempPackagePath" + tempPackagePath);
88-
const releaseZipPath = path_1.default.join(webPackage, 'release.zip');
89-
try {
90-
yield (0, promises_1.unlink)(releaseZipPath);
91-
core.info(`Deleted: ${releaseZipPath}`);
92-
}
93-
catch (err) {
94-
if (err.code === 'ENOENT') {
95-
core.info(`File does not exist: ${releaseZipPath}`);
96-
}
97-
else {
98-
core.info("Not able to delete");
99-
}
100-
}
86+
yield this.deleteReleaseZip(webPackage);
10187
webPackage = (yield zipUtility.archiveFolder(webPackage, "", tempPackagePath));
10288
core.debug("Compressed folder into zip " + webPackage);
10389
core.debug("Initiated deployment via kudu service for webapp package : " + webPackage);
@@ -161,5 +147,46 @@ class WebAppDeploymentProvider extends BaseWebAppDeploymentProvider_1.BaseWebApp
161147
core.setOutput('webapp-url', this.applicationURL);
162148
});
163149
}
150+
deleteReleaseZip(folderPath) {
151+
return __awaiter(this, void 0, void 0, function* () {
152+
let isPhpApp = yield this.containsPhpFiles(folderPath);
153+
if (!isPhpApp) {
154+
core.info("No PHP files found in the folder, skipping release.zip deletion.");
155+
return;
156+
}
157+
let releaseZipPath = path_1.default.join(folderPath, 'release.zip');
158+
try {
159+
yield (0, promises_1.unlink)(releaseZipPath);
160+
core.info(`Deleted: ${releaseZipPath}`);
161+
}
162+
catch (err) {
163+
if (err.code === 'ENOENT') {
164+
core.error(`File does not exist: ${releaseZipPath}`);
165+
}
166+
else {
167+
core.error(`Error while deleting file ${releaseZipPath}, Error: ${err}`);
168+
}
169+
}
170+
});
171+
}
172+
containsPhpFiles(directoryPath) {
173+
return __awaiter(this, void 0, void 0, function* () {
174+
try {
175+
const files = fs.readdirSync(directoryPath);
176+
for (const file of files) {
177+
const fullPath = path_1.default.join(directoryPath, file);
178+
const stat = fs.statSync(fullPath);
179+
if (stat.isFile() && path_1.default.extname(file).toLowerCase() === '.php') {
180+
return true;
181+
}
182+
}
183+
return false;
184+
}
185+
catch (error) {
186+
console.error(`Error checking directory: ${error.message}`);
187+
return false;
188+
}
189+
});
190+
}
164191
}
165192
exports.WebAppDeploymentProvider = WebAppDeploymentProvider;

src/DeploymentProvider/Providers/WebAppDeploymentProvider.ts

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,7 @@ export class WebAppDeploymentProvider extends BaseWebAppDeploymentProvider {
4646

4747
await this.printFilesInDirectory(webPackage);
4848

49-
core.info("Print webPackage " + webPackage);
50-
core.info("Print tempPackagePath" + tempPackagePath)
51-
52-
const releaseZipPath = path.join(webPackage, 'release.zip');
53-
try {
54-
await unlink(releaseZipPath);
55-
core.info(`Deleted: ${releaseZipPath}`);
56-
} catch (err: any) {
57-
if (err.code === 'ENOENT') {
58-
core.info(`File does not exist: ${releaseZipPath}`);
59-
} else {
60-
core.info("Not able to delete")
61-
}
62-
}
49+
await this.deleteReleaseZip(webPackage);
6350

6451
webPackage = await zipUtility.archiveFolder(webPackage, "", tempPackagePath) as string;
6552
core.debug("Compressed folder into zip " + webPackage);
@@ -130,4 +117,47 @@ export class WebAppDeploymentProvider extends BaseWebAppDeploymentProvider {
130117
console.log('App Service Application URL: ' + this.applicationURL);
131118
core.setOutput('webapp-url', this.applicationURL);
132119
}
120+
121+
private async deleteReleaseZip(folderPath: string) {
122+
123+
let isPhpApp = await this.containsPhpFiles(folderPath);
124+
125+
if(!isPhpApp) {
126+
core.info("No PHP files found in the folder, skipping release.zip deletion.");
127+
return;
128+
}
129+
130+
let releaseZipPath = path.join(folderPath, 'release.zip');
131+
132+
try {
133+
await unlink(releaseZipPath);
134+
core.info(`Deleted: ${releaseZipPath}`);
135+
} catch (err: any) {
136+
if (err.code === 'ENOENT') {
137+
core.error(`File does not exist: ${releaseZipPath}`);
138+
} else {
139+
core.error(`Error while deleting file ${releaseZipPath}, Error: ${err}`);
140+
}
141+
}
142+
}
143+
144+
private async containsPhpFiles(directoryPath: string): Promise<boolean> {
145+
try {
146+
const files = fs.readdirSync(directoryPath);
147+
148+
for (const file of files) {
149+
const fullPath = path.join(directoryPath, file);
150+
const stat = fs.statSync(fullPath);
151+
152+
if (stat.isFile() && path.extname(file).toLowerCase() === '.php') {
153+
return true;
154+
}
155+
}
156+
157+
return false;
158+
} catch (error: any) {
159+
console.error(`Error checking directory: ${error.message}`);
160+
return false;
161+
}
162+
}
133163
}

0 commit comments

Comments
 (0)