@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
68 lines (54 loc) • 2.3 kB
JavaScript
import fs from 'node:fs/promises';
import path from 'node:path';
import getConfig from '../../config.js';
import getPluginVersion from '../utils/get-plugin-version.js';
import sendSlackMessage from '../utils/send-slack-message.js';
import { isGravityFormsAddon } from '../utils/tools.js';
import { generateHalMessage } from './util.js';
const { config } = getConfig();
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 () => {
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 );
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 );
}
} )();