@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
73 lines (62 loc) • 2.47 kB
JavaScript
const axios = require( 'axios' );
const FormData = require( 'form-data' );
const { loadEnv } = require( '../utils/tools' );
const getPluginVersion = require( '../utils/get-plugin-version' );
const sendSlackMessage = require( '../utils/send-slack-message' );
const getConfig = require('../../config');
const { config } = getConfig();
const { trailingSlashIt } = require( './util' );
loadEnv( config.paths.root );
const rootPath = config?.paths?.root || '';
const fileName = config?.settings?.rootPluginFile || '';
const updateManagerVersion = async () => {
// Check if not in production mode and exit early
if ( process.env.GULP_PRODUCTION_MODE !== 'true' ) {
console.log( 'Skipping updating manager version because GULP_PRODUCTION_MODE is not set to true.' );
return;
}
const slug = config?.settings?.slug || 'gravityforms';
const version = process.env.GRAVITY_PLUGIN_VERSION || getPluginVersion( rootPath, fileName );
const apiKey = process.env.MANAGER_API_KEY || '';
const managerUrl = process.env.MANAGER_URL || '';
if ( ! apiKey || ! managerUrl ) {
console.error( 'API key or manager URL not found, cannot update manager version.' );
return;
}
let pathValue = '';
if ( /gravityforms|gravityflow/.test( slug ) ) {
pathValue =
slug === 'gravityforms'
? `gravityforms/releases/gravityforms_${ version }.zip`
: `gravityforms/addons/${ slug.replace( 'gravityforms', '' ) }/${ slug }_${ version }.zip`;
} else {
pathValue = `${ slug }/releases/${ slug }_${ version }.zip`
}
console.log( `Updating Gravity manager version with path value: ${ pathValue }.` );
try {
const response = await axios.patch(
`${ trailingSlashIt( managerUrl ) }wp-json/gravityapi/v1/addons/update_latest_version`,
{},
{
params: {
api_key: apiKey,
slug: slug,
latest_version: version,
path: pathValue,
// Add change_log if you have that data available
// change_log: 'Your change log here'
},
headers: {
'Content-Type': 'application/json'
}
}
);
console.log( 'Success, updated Gravity manger version: ', response.data );
} catch ( error ) {
console.error( 'Error, could not update Gravity manager version: ', error.response ? error.response.data : error.message );
await sendSlackMessage( `Failed to update manager version during build: ${ error.response ? error.response.data : error.message }`, 'error' );
process.exit( 1 );
}
};
updateManagerVersion();