diff --git a/packages/engine/build.plugin.js b/packages/engine/build.plugin.js index ee433be05..0f7f403ae 100644 --- a/packages/engine/build.plugin.js +++ b/packages/engine/build.plugin.js @@ -1,18 +1,26 @@ const { execSync } = require('child_process'); const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); +const fse = require('fs-extra'); -function getReleaseVersion() { +// get version from git branch name, +// e.g. release/1.0.7 => 1.0.7 +// release/1.0.7-beta => 1.0.7 (beta) +function getVersion() { const gitBranchName = execSync('git rev-parse --abbrev-ref HEAD', { encoding: 'utf-8' }); - const reBranchVersion = /^(?:[\w-]+\/)(\d+\.\d+\.\d+)$/im; + const reBranchVersion = /^(?:[\w-]+\/)(\d+\.\d+\.\d+)(-?beta)?$/im; + const match = reBranchVersion.exec(gitBranchName); if (!match) { - throw new Error(`[engine] gitBranchName: ${gitBranchName} is not valid`); + console.warn(`[engine] gitBranchName: ${gitBranchName}`); + return 'N/A'; } - return match[1]; + const [_, version, beta] = match; + + return beta && beta.endsWith('beta') ? `${version}(beta)` : version; } -const version = getReleaseVersion(); +const releaseVersion = getVersion(); module.exports = ({ context, onGetWebpackConfig }) => { onGetWebpackConfig((config) => { @@ -24,7 +32,7 @@ module.exports = ({ context, onGetWebpackConfig }) => { config .plugin('define') .use(context.webpack.DefinePlugin, [{ - VERSION_PLACEHOLDER: JSON.stringify(version), + VERSION_PLACEHOLDER: JSON.stringify(releaseVersion), }]); config.plugins.delete('hot'); config.devServer.hot(false);