2
0
Fork 0
mirror of https://github.com/elementor/hello-theme.git synced 2026-03-03 12:56:14 +08:00
hello-theme/.github/scripts/update-prerelease-beta-version.js
ronkelementor e5944194d2
New: Copy GitHub actions from next release for releases (#167)
* New: Add GitHub actions for releases

* delete build + lint workflows
2021-06-21 13:16:26 +03:00

35 lines
1.2 KiB
JavaScript

'use strict';
const semverInc = require( 'semver/functions/inc' );
const packageJson = require( '../../package.json' );
const fs = require( 'fs' );
const bumpVersion = (relativeVersion, lastVersionTagName, bumpsFromCurrentVersion = 1) => {
const lastVersion = packageJson[lastVersionTagName] || '';
let expectedVersion = relativeVersion;
(new Array( bumpsFromCurrentVersion ).fill( 1 )).forEach(() => {
expectedVersion = semverInc( expectedVersion, 'minor' );
});
let currentLastVersionNumber = 0;
if (lastVersion) {
const splitVersion = lastVersion.split( `-beta` );
if (splitVersion[0] === expectedVersion) {
const currentLastVersion = splitVersion[splitVersion.length - 1];
currentLastVersionNumber = Number( currentLastVersion );
if (Number.isNaN( currentLastVersionNumber )) {
console.error( `invalid beta version: ${currentLastVersion}` );
process.exit( 1 );
return;
}
}
}
const newVersion = `${expectedVersion}-beta${currentLastVersionNumber + 1}`;
packageJson[lastVersionTagName] = newVersion;
fs.writeFileSync( './package.json', JSON.stringify( packageJson, null, 4 ) );
console.log( newVersion );
}
const relativeVersion = packageJson.version;
bumpVersion( relativeVersion, 'last_beta_version' );