From 27ce430a6cf95d3f0a7afbbd17dd167be7438b54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LeoYuan=20=E8=A2=81=E5=8A=9B=E7=9A=93?= Date: Thu, 21 Apr 2022 14:30:08 +0800 Subject: [PATCH] chore: use the branch name as release version --- packages/engine/build.plugin.js | 18 ++++++++++++++---- packages/engine/scripts/version.js | 27 --------------------------- 2 files changed, 14 insertions(+), 31 deletions(-) delete mode 100644 packages/engine/scripts/version.js diff --git a/packages/engine/build.plugin.js b/packages/engine/build.plugin.js index 07b68a383..ee433be05 100644 --- a/packages/engine/build.plugin.js +++ b/packages/engine/build.plugin.js @@ -1,8 +1,18 @@ +const { execSync } = require('child_process'); const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); -const fse = require('fs-extra'); -// read from lerna -const lernaConfig = JSON.parse(fse.readFileSync('../../lerna.json', 'utf8')); -const { version } = lernaConfig; + +function getReleaseVersion() { + const gitBranchName = execSync('git rev-parse --abbrev-ref HEAD', { encoding: 'utf-8' }); + const reBranchVersion = /^(?:[\w-]+\/)(\d+\.\d+\.\d+)$/im; + const match = reBranchVersion.exec(gitBranchName); + if (!match) { + throw new Error(`[engine] gitBranchName: ${gitBranchName} is not valid`); + } + + return match[1]; +} + +const version = getReleaseVersion(); module.exports = ({ context, onGetWebpackConfig }) => { onGetWebpackConfig((config) => { diff --git a/packages/engine/scripts/version.js b/packages/engine/scripts/version.js deleted file mode 100644 index 016e337c5..000000000 --- a/packages/engine/scripts/version.js +++ /dev/null @@ -1,27 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-disable @typescript-eslint/no-require-imports */ -const { join } = require('path'); -const fse = require('fs-extra'); -// read from lerna -const lernaConfig = JSON.parse(fse.readFileSync('../../lerna.json', 'utf8')); -const { version } = lernaConfig; - -let releaseVersion = version; - -const distDir = join(__dirname, '../dist'); - -const distFileNames = ['engine-core.js']; - -distFileNames.forEach(name => { - const distFile = join(distDir, 'js', name); - if (!fse.existsSync(distFile)) { - console.warn(`[engine] distFile: ${distFile} doesn\'t exist`); - return; - } - - const indexContent = fse.readFileSync(distFile, 'utf-8'); - - fse.writeFileSync(distFile, indexContent.replace('{{VERSION_PLACEHOLDER}}', releaseVersion)); -}); - -console.log('[engine] update engine version successfully!');