UNPKG

@gravityforms/gulp-tasks

Version:
68 lines (54 loc) 2.3 kB
#!/usr/bin/env node 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 ); } } )();