Skip to content

Commit d4b5316

Browse files
skywing918Kyle Zhang
andauthored
Clean up Samples folder if run command for build samples (Azure#12898)
* Add cleanupSamplesFolder function and integrate it into generateAzureSDKPackage * Integrate cleanupSamplesFolder into tryBuildSamples and remove it from generateAzureSDKPackage * Remove unnecessary blank line in buildPackage function --------- Co-authored-by: Kyle Zhang <v-zhanh@microsoft.com>
1 parent d0d90ca commit d4b5316

3 files changed

Lines changed: 25 additions & 3 deletions

File tree

tools/js-sdk-release-tools/src/common/npmUtils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ function executeCommand(
8989
}
9090
}
9191

92-
logger.error(`Failed to execute command after ${maxRetries} attempts: ${command}`);
92+
logger.warn(`Failed to execute command after ${maxRetries} attempts: ${command}`);
9393
return null;
9494
}
9595

tools/js-sdk-release-tools/src/common/rushUtils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { basename, join, normalize, posix, relative, resolve } from 'node:path';
55
import pkg from 'fs-extra';
66
const { ensureDir, readFile, writeFile } = pkg;
77
import { getArtifactName, getNpmPackageInfo } from './npmUtils.js';
8-
import { runCommand, runCommandOptions } from './utils.js';
8+
import { runCommand, runCommandOptions, cleanupSamplesFolder } from './utils.js';
99

1010
import { glob } from 'glob';
1111
import { logger } from '../utils/logger.js';
@@ -114,7 +114,6 @@ export async function buildPackage(
114114
) {
115115
const relativePackageDirectoryToSdkRoot = relative(normalize(options.sdkRepoRoot), normalize(packageDirectory));
116116
logger.info(`Start to build package in '${relativePackageDirectoryToSdkRoot}'.`);
117-
118117
const { name } = await getNpmPackageInfo(relativePackageDirectoryToSdkRoot);
119118
let buildStatus = `succeeded`;
120119
if (isRushRepo(options.sdkRepoRoot)) {
@@ -176,6 +175,7 @@ export async function buildPackage(
176175
// in release mode, exceptions will be thrown to ensure sample build succeeds
177176
export async function tryBuildSamples(packageDirectory: string, rushxScript: string, sdkRepoRoot: string, runMode: RunMode) {
178177
logger.info(`Start to build samples in '${packageDirectory}'.`);
178+
await cleanupSamplesFolder(packageDirectory);
179179
const cwd = packageDirectory;
180180
const options = { ...runCommandOptions, cwd };
181181
const modularSDKType = getModularSDKType(packageDirectory);

tools/js-sdk-release-tools/src/common/utils.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,28 @@ export async function cleanUpPackageDirectory(
463463
}
464464
}
465465

466+
/**
467+
* Cleans up the samples folder for management plane packages
468+
* @param packageDirectory - Package directory to clean up
469+
* @returns Promise that resolves when cleanup is complete
470+
*/
471+
export async function cleanupSamplesFolder(packageDirectory: string): Promise<void> {
472+
if (!fs.existsSync(packageDirectory)) {
473+
logger.info(`Directory ${packageDirectory} doesn't exist yet, nothing to clean up.`);
474+
return;
475+
}
476+
477+
const modularSDKType = getModularSDKType(packageDirectory);
478+
if (modularSDKType === ModularSDKType.ManagementPlane) {
479+
const samplesPath = path.join(packageDirectory, 'samples');
480+
// Check if directory exists first
481+
if (fs.existsSync(samplesPath)) {
482+
logger.info(`Cleaning up samples folder: ${samplesPath}`);
483+
await rm(samplesPath, { recursive: true, force: true });
484+
}
485+
}
486+
}
487+
466488
export async function getPackageNameFromTspConfig(typeSpecDirectory: string): Promise<string | undefined> {
467489
const tspConfig = await resolveOptions(typeSpecDirectory);
468490
const emitterOptions = tspConfig.options?.[emitterName];

0 commit comments

Comments
 (0)