UNPKG

@gravityforms/gulp-tasks

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