@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
62 lines (53 loc) • 2.56 kB
JavaScript
const gulp = require( 'gulp' );
const zip = require( 'gulp-zip' );
const rename = require( 'gulp-rename' );
const path = require( 'path' );
const getConfig = require( '../../config' );
const { config } = getConfig();
const getPluginVersion = require( '../utils/get-plugin-version' );
const sendSlackMessage = require( '../utils/send-slack-message' );
const { trailingSlashIt } = require( '../utils/tools' );
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 );
} );
} );
}
module.exports = 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 || {} );