UNPKG

@gravityforms/gulp-tasks

Version:
62 lines (53 loc) 2.56 kB
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 || {} );