获取Jenkins BUILD_NUMBER变量并将其显示在angular应用程序中

时间:2018-08-29 15:21:04

标签: angular jenkins

我通过Jenkins部署了一个有角度的应用程序,我想在页面的页脚中显示内部版本号。我知道Jenkins在执行作业时会发送系统环境变量BUILD_NUMBER。 我读了一些文章,但没有人说我们如何从OS中获取此变量?

1 个答案:

答案 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中。 您可以按照以下步骤操作

  1. 更新environment.prod.ts以使用预定义的密钥。让我们假设jenkinsBuildNO。例如

    export const environment = { production: true, system: 'prod', version: 'jenkinsBuildNO' };

  2. 在jenkins中创建另一个步骤,以用构建号或其他名称更新jenkinsBuildNO中的environment.prod.ts

    sed -i -e 's/jenkinsBuildNO/%BUILD_NUMBER%/g' src/environments/environment.prod.ts

  3. 开始角度构建。 ng buld --prod

  4. 使用我们中的预定义键jenkinsBuildNO更新内部版本号 environment.prod.ts

    sed -i -e 's/%BUILD_NUMBER%/jenkinsBuildNO/g' src/environments/environment.prod.ts