@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
68 lines (56 loc) • 2.41 kB
JavaScript
const fs = require( 'fs/promises' );
const path = require( 'path' );
const getConfig = require('../../config');
const { config } = getConfig();
const { isGravityFormsAddon } = require( '../utils/tools' );
const sendSlackMessage = require( '../utils/send-slack-message' );
const getPluginVersion = require( '../utils/get-plugin-version' );
const { generateHalMessage } = require( './util' );
const getBucketName = ( awsBucket ) => {
const buildEnvironment = process.env.BUILD_ENVIRONMENT;
let bucketName = awsBucket;
if ( ! buildEnvironment ) {
bucketName += `.dev`;
} else if ( buildEnvironment !== 'prod' ) {
bucketName += `.${ buildEnvironment }`;
}
return bucketName;
};
const getChangeLogS3Url = ( slug, bucketName ) => {
return `https://s3.amazonaws.com/${ bucketName }/${
! isGravityFormsAddon( config ) ? 'releases' : `addons/${ slug.replace( 'gravityforms', '' ) }`
}/change_log.txt`;
};
const slackUpdate = async () => {
// Check if not in production mode and exit early
if ( process.env.GULP_PRODUCTION_MODE !== 'true' ) {
console.log( 'Skipping updating slack because GULP_PRODUCTION_MODE is not set to true.' );
return;
}
const { friendlyName, slug, rootPluginFile } = config.settings;
const version = process.env.GRAVITY_PLUGIN_VERSION || getPluginVersion( config.paths.root, rootPluginFile );
const attachments = [];
const { awsBucket = process.env.AWS_GRAVITYFORMS_BUCKET } = config.settings;
const bucketName = getBucketName( awsBucket );
const configFile = await fs.readFile( 'process_data.json', 'utf8' );
const { googleDriveLink } = JSON.parse( configFile );
// Generate HAL message using changelog
const changelogPath = path.join( config.paths.root, 'change_log.txt' );
const halMessage = await generateHalMessage( changelogPath, friendlyName );
attachments.push( {
color: 'good',
text: `<${ googleDriveLink }|*${ friendlyName } v${ version }*> is now fully operational on the ${ bucketName } bucket.\n\n${ halMessage } <${ getChangeLogS3Url( slug, bucketName ) }|View the change log>`,
} );
await sendSlackMessage( '', 'success', attachments );
}
( async () => {
try {
await slackUpdate();
if ( process.env.GULP_PRODUCTION_MODE === 'true' ) {
console.log( 'Updated slack with publish information successfully.' );
}
} catch ( err ) {
console.error( 'An error occurred during slack messaging:', err );
}
} )();