@@ -31,6 +31,7 @@ const zip = require('gulp-zip');
3131const Translate = require ( "./translateStrings" ) ;
3232const copyThirdPartyLibs = require ( "./thirdparty-lib-copy" ) ;
3333const optionalBuild = require ( "./optional-build" ) ;
34+ const validateBuild = require ( "./validate-build" ) ;
3435const minify = require ( 'gulp-minify' ) ;
3536const glob = require ( "glob" ) ;
3637const crypto = require ( "crypto" ) ;
@@ -1057,71 +1058,6 @@ function validatePackageVersions() {
10571058 } ) ;
10581059}
10591060
1060- function validateDistSizeRestrictions ( ) {
1061- return new Promise ( ( resolve , reject ) => {
1062- const MAX_FILE_SIZE_MB = 1 ;
1063- const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024 ;
1064- const MAX_TOTAL_SIZE_MB = 80 ;
1065- const MAX_TOTAL_SIZE_BYTES = MAX_TOTAL_SIZE_MB * 1024 * 1024 ;
1066-
1067- _listFilesInDir ( 'dist' ) . then ( ( files ) => {
1068- const oversizedFiles = [ ] ;
1069- let totalSize = 0 ;
1070-
1071- for ( let file of files ) {
1072- const stats = fs . statSync ( file ) ;
1073- totalSize += stats . size ;
1074-
1075- if ( stats . size > MAX_FILE_SIZE_BYTES ) {
1076- oversizedFiles . push ( {
1077- path : file ,
1078- sizeBytes : stats . size ,
1079- sizeMB : ( stats . size / ( 1024 * 1024 ) ) . toFixed ( 2 )
1080- } ) ;
1081- }
1082- }
1083-
1084- const totalSizeMB = ( totalSize / ( 1024 * 1024 ) ) . toFixed ( 2 ) ;
1085- const hasOversizedFiles = oversizedFiles . length > 0 ;
1086- const hasTotalSizeExceeded = totalSize > MAX_TOTAL_SIZE_BYTES ;
1087-
1088- if ( hasOversizedFiles || hasTotalSizeExceeded ) {
1089- console . error ( `\n========================================` ) ;
1090- console . error ( `SIZE VALIDATION FAILED` ) ;
1091- console . error ( `========================================` ) ;
1092-
1093- if ( hasTotalSizeExceeded ) {
1094- console . error ( `\nTotal dist folder size: ${ totalSizeMB } MB (exceeds ${ MAX_TOTAL_SIZE_MB } MB limit)` ) ;
1095- }
1096-
1097- if ( hasOversizedFiles ) {
1098- // Sort by size in descending order
1099- oversizedFiles . sort ( ( a , b ) => b . sizeBytes - a . sizeBytes ) ;
1100- console . error ( `\nFound ${ oversizedFiles . length } file(s) exceeding ${ MAX_FILE_SIZE_MB } MB:\n` ) ;
1101-
1102- for ( let file of oversizedFiles ) {
1103- console . error ( ` ${ file . path } (${ file . sizeMB } MB)` ) ;
1104- }
1105- }
1106-
1107- console . error ( `\n========================================\n` ) ;
1108-
1109- const errors = [ ] ;
1110- if ( hasTotalSizeExceeded ) {
1111- errors . push ( `Total dist size ${ totalSizeMB } MB exceeds ${ MAX_TOTAL_SIZE_MB } MB limit` ) ;
1112- }
1113- if ( hasOversizedFiles ) {
1114- errors . push ( `${ oversizedFiles . length } file(s) exceed ${ MAX_FILE_SIZE_MB } MB size limit` ) ;
1115- }
1116-
1117- reject ( `Build validation failed: ${ errors . join ( '; ' ) } ` ) ;
1118- } else {
1119- console . log ( `Size validation passed: Total dist size is ${ totalSizeMB } MB (under ${ MAX_TOTAL_SIZE_MB } MB), all files under ${ MAX_FILE_SIZE_MB } MB` ) ;
1120- resolve ( ) ;
1121- }
1122- } ) . catch ( reject ) ;
1123- } ) ;
1124- }
11251061
11261062function _patchMinifiedCSSInDistIndex ( ) {
11271063 return new Promise ( ( resolve ) => {
@@ -1150,17 +1086,18 @@ exports.reset = series(cleanAll);
11501086
11511087exports . releaseDev = series ( cleanDist , exports . buildDebug , makeBracketsConcatJS , makeConcatExtensions , _compileLessSrc ,
11521088 makeDistAll , cleanUnwantedFilesInDistDev , releaseDev , _renameConcatExtensionsinDist ,
1153- createDistCacheManifest , createDistTest , _cleanPhoenixProGitFolder , _cleanReleaseBuildArtefactsInSrc , validateDistSizeRestrictions ) ;
1089+ createDistCacheManifest , createDistTest ,
1090+ _cleanPhoenixProGitFolder , _cleanReleaseBuildArtefactsInSrc , validateBuild . validateDistSizeRestrictions ) ;
11541091exports . releaseStaging = series ( cleanDist , exports . build , makeBracketsConcatJSWithMinifiedBrowserScripts ,
11551092 makeConcatExtensions , _compileLessSrc , makeDistNonJS , makeJSDist , makeJSPrettierDist , makeNonMinifyDist ,
11561093 cleanUnwantedFilesInDistProd , _renameBracketsConcatAsBracketsJSInDist , _renameConcatExtensionsinDist ,
11571094 _patchMinifiedCSSInDistIndex , releaseStaging , createDistCacheManifest , createDistTest ,
1158- _deletePhoenixProSourceFolder , _cleanReleaseBuildArtefactsInSrc , validateDistSizeRestrictions ) ;
1095+ _deletePhoenixProSourceFolder , _cleanReleaseBuildArtefactsInSrc , validateBuild . validateDistSizeRestrictions ) ;
11591096exports . releaseProd = series ( cleanDist , exports . build , makeBracketsConcatJSWithMinifiedBrowserScripts ,
11601097 makeConcatExtensions , _compileLessSrc , makeDistNonJS , makeJSDist , makeJSPrettierDist , makeNonMinifyDist ,
11611098 cleanUnwantedFilesInDistProd , _renameBracketsConcatAsBracketsJSInDist , _renameConcatExtensionsinDist ,
11621099 _patchMinifiedCSSInDistIndex , releaseProd , createDistCacheManifest , createDistTest ,
1163- _deletePhoenixProSourceFolder , _cleanReleaseBuildArtefactsInSrc , validateDistSizeRestrictions ) ;
1100+ _deletePhoenixProSourceFolder , _cleanReleaseBuildArtefactsInSrc , validateBuild . validateDistSizeRestrictions ) ;
11641101exports . releaseWebCache = series ( makeDistWebCache ) ;
11651102exports . serve = series ( exports . build , serve ) ;
11661103exports . zipTestFiles = series ( zipTestFiles ) ;
@@ -1171,4 +1108,4 @@ exports.default = series(exports.build);
11711108exports . patchVersionBump = series ( patchVersionBump ) ;
11721109exports . minorVersionBump = series ( minorVersionBump ) ;
11731110exports . majorVersionBump = series ( majorVersionBump ) ;
1174- exports . validateDistSizeRestrictions = series ( validateDistSizeRestrictions ) ;
1111+ exports . validateDistSizeRestrictions = series ( validateBuild . validateDistSizeRestrictions ) ;
0 commit comments