@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
65 lines (55 loc) • 2.65 kB
JavaScript
import path from 'node:path';
import { createRequire } from 'node:module';
import getConfig from '../../config.js';
import getPluginVersion from '../utils/get-plugin-version.js';
import sendSlackMessage from '../utils/send-slack-message.js';
import { trailingSlashIt } from '../utils/tools.js';
const cjsRequire = createRequire( import.meta.url );
const gulp = cjsRequire( 'gulp' );
const zip = cjsRequire( 'gulp-zip' );
const rename = cjsRequire( 'gulp-rename' );
const { config } = getConfig();
function handleStreamError( stream, errorMessage ) {
stream.on( 'error', function( err ) {
console.error( errorMessage, err );
sendSlackMessage( `${ errorMessage }: ${ err }`, 'error' )
.then( () => process.exit( 1 ) )
.catch( ( slackErr ) => {
console.error( 'Failed to send Slack message:', slackErr );
process.exit( 1 );
} );
} );
}
export default Object.assign( {}, {
package() {
const version = process.env.GRAVITY_PLUGIN_VERSION || getPluginVersion( config.paths.root, config.settings.rootPluginFile );
const srcFiles = config?.package?.release?.files || [];
const rootPath = trailingSlashIt( config.paths.root );
srcFiles.push( `!${ rootPath }${ config.settings.slug }_${ version }.zip` );
srcFiles.push( `!${ rootPath }${ config.settings.slug }_${ version }_wpcom.zip` );
const packageStream = gulp.src( srcFiles )
.pipe( rename( function( pathObj ) {
pathObj.dirname = path.join( config.settings.slug, pathObj.dirname );
} ) )
.pipe( zip( `${ config.settings.slug }_${ version }.zip`, { buffer: false } ) )
.pipe( gulp.dest( config.paths.root ) );
handleStreamError( packageStream, 'Release zip creation error during build' );
return packageStream;
},
packageWpCom() {
const version = process.env.GRAVITY_PLUGIN_VERSION || getPluginVersion( config.paths.root, config.settings.rootPluginFile );
const files = config?.package?.release?.files || [];
const rootPath = trailingSlashIt( config.paths.root );
files.push( `!${ rootPath }vendor-environments{,/**}` );
files.push( `!${ rootPath }${ config.settings.slug }_${ version }.zip` );
files.push( `!${ rootPath }${ config.settings.slug }_${ version }_wpcom.zip` );
const packageStream = gulp.src( files )
.pipe( rename( function( pathObj ) {
pathObj.dirname = path.join( config.settings.slug, pathObj.dirname );
} ) )
.pipe( zip( `${ config.settings.slug }_${ version }_wpcom.zip`, { buffer: false } ) )
.pipe( gulp.dest( config.paths.root ) );
handleStreamError( packageStream, 'WPCom release zip creation error during build' );
return packageStream;
},
}, config?.tasks?.builtins?.zip || {} );