我通过Jenkins部署了一个有角度的应用程序,我想在页面的页脚中显示内部版本号。我知道Jenkins在执行作业时会发送系统环境变量BUILD_NUMBER。 我读了一些文章,但没有人说我们如何从OS中获取此变量?
答案 0 :(得分:1)
这是一种解决方法。
您可以使用构建前和构建后事件来替换environment.prod.ts
文件中的版本标记。
export const environment = { production: true, system: 'prod', version: '%VERSION%' };
安装npm-replace:
npm install replace --save-dev
package.json
"build:prod": "ng build --env=prod",
"prebuild:prod": "replace '%VERSION%' $VERSION src/environments/environment.prod.ts",
"postbuild:prod": "replace $VERSION '%VERSION%' src/environments/environment.prod.ts",
在jenkins中,运行以下命令
VERSION="$BUILD_NUMBER" npm run build:prod
参考:Request: Method to pass environment variables during build vs file.
更新
实现上述行为的另一种方法是使用sed
实用程序,该实用程序已预先安装在Linux中。
您可以按照以下步骤操作
更新environment.prod.ts
以使用预定义的密钥。让我们假设jenkinsBuildNO
。例如
export const environment = { production: true, system: 'prod', version: 'jenkinsBuildNO' };
在jenkins中创建另一个步骤,以用构建号或其他名称更新jenkinsBuildNO
中的environment.prod.ts
。
sed -i -e 's/jenkinsBuildNO/%BUILD_NUMBER%/g' src/environments/environment.prod.ts
开始角度构建。 ng buld --prod
使用我们中的预定义键jenkinsBuildNO
更新内部版本号
environment.prod.ts
sed -i -e 's/%BUILD_NUMBER%/jenkinsBuildNO/g' src/environments/environment.prod.ts