@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
98 lines (87 loc) • 4.22 kB
text/typescript
import { LintModule } from '@microsoft/windows-admin-center-sdk/tools/code-formatter/lint';
import { parallel, series, watch } from 'gulp';
import { CleanModule } from './common/clean';
import { CompileModule } from './common/compile';
import { Config } from './common/config';
import { CopyModule } from './common/copy';
import { PackModule } from './common/pack';
import { PowerShellModule } from './common/powershell';
import { ResjsonModule } from './common/resjson';
import { TestModule } from './common/test';
import { UITestAutomationModule } from './common/ui-test-automation';
import { ValidateModule } from './common/validate';
import { gulpConfig } from './config-data';
module IndexModule {
const config: Config = gulpConfig();
// Export tasks
export const clean = CleanModule.clean;
export const lintApp = LintModule.lintApp;
export const validateManifest = ValidateModule.validateManifest;
export const validatePsCimConfig = ValidateModule.validatePsCimConfig;
export const validate = config.powershell.skipCim ? validateManifest : parallel(validateManifest, validatePsCimConfig);
export const resjson = ResjsonModule.resjson;
export const powershell = config.powershell.skip ? function powershellSkip(cb) { cb(); } : PowerShellModule.powershell;
export const copy = CopyModule.copy;
export const compileLib = config.build?.library ? CompileModule.compileLib : function compileLibSkip(cb) { cb(); };
export const bundleApp = CompileModule.bundleApp;
export const serveApp = CompileModule.serveApp;
export const ut = TestModule.unitTestApp;
export const pester = TestModule.pester;
export const test = TestModule.test;
export const pack = PackModule.pack;
// Build Tasks
export const generate = parallel(resjson, powershell);
export const app = series(lintApp, bundleApp);
export const build = series(clean, generate, validate, LintModule.lintApp, compileLib, copy, test, bundleApp);
export const quick = series(clean, generate, compileLib, copy, bundleApp);
// Serve Tasks
export function watchResource(cb) {
watch(['src/resources/**/*.resjson', 'src/resources/**/*.ps1'], { ignoreInitial: false }, generate);
cb();
}
export const serve = series(watchResource, serveApp);
/* UI Test Automation tasks */
// New UTA format
export const watchUTA = series(
LintModule.lintUiTestAutomation,
UITestAutomationModule.buildLib,
UITestAutomationModule.saveUiTestAutomation,
UITestAutomationModule.saveUiTestAutomationToTarget
);
export function watchUiTestAutomation(cb) {
watch(
['uta/**/*.*'],
{ ignoreInitial: false, delay: 1000 },
watchUTA);
cb();
}
// Legacy UTA format
// TODO: cleanup _legacy functions when fully migrated to new format
export const watchUTA_legacy = series(
LintModule.lintUiTestAutomation_legacy,
UITestAutomationModule.buildUiTestAutomation,
UITestAutomationModule.saveUiTestAutomation_legacy
);
export function watchUiTestAutomation_legacy(cb) {
watch(
['ui-test-automation/**/*.*'],
{ ignoreInitial: false, delay: 1000 },
watchUTA_legacy);
cb();
}
}
// ui-test-automation aliases
// New UTA format
IndexModule['uta-build'] = series(
LintModule.lintUiTestAutomation,
UITestAutomationModule.buildLib,
UITestAutomationModule.copyLibPackageJson
);
IndexModule['uta-save'] = series(UITestAutomationModule.saveUiTestAutomation, UITestAutomationModule.saveUiTestAutomationToTarget);
IndexModule['uta-watch'] = IndexModule.watchUiTestAutomation;
// Legacy UTA format
// TODO: cleanup all -legacy aliases when fully migrated to new format
IndexModule['uta-build-legacy'] = series(LintModule.lintUiTestAutomation_legacy, UITestAutomationModule.buildUiTestAutomation);
IndexModule['uta-save-legacy'] = UITestAutomationModule.saveUiTestAutomation_legacy;
IndexModule['uta-watch-legacy'] = IndexModule.watchUiTestAutomation_legacy;
export = IndexModule;