0
点赞
收藏
分享

微信扫一扫

Jenkins 结合 Angular 展示构建版本

刚好最近在巩固相关的知识内容,以 ​​angular​​ 为主,那么咱就来参与下活动,希望能够坚持下去,顺便拿点小奖励。

I am In.

在 Angular 结合 Git Commit 版本处理 文末我们留下了疑问🤔️ 下面将问题具体化

结合 jenkins 构建,我们能够获取到构建的信息,比如构建号,回填到页面否?

如下:

Jenkins 结合 Angular 展示构建版本_json

Uha,我们在原基础上修改下。

根目录添加文件 ​​build_info.json​​。

{}

你没看错,​​build_info.json​​​ 的内容就是 ​​{}​

​build_info.json​​​ 文件是给 ​​Jenkinsfile​​ 构建的时候生成的。

具体的实现思路如下:

  1. 在构建的过程中执行​​Jenkinsfile​​​ 生成​​build_info.json​​ 文件
  2. 在对项目打包的时候,针对不同的环境考虑是否获取​​build_info.json​​ 文件的内容

为了方便演示,这里的环境只考虑生产环境

上面的步骤简单两步,最重要的一点是如何写入 build_info.json 文件内容

如果你不熟悉 ​​Jenkinsfile​​​ 相关内容,请结合Jenkins Pipeline 结合 Gitlab 实现 Node 项目自动构建​文章来阅读。此时你关注的重点是文章 ​​Jenkinsfile​​ 的内容,如下:

pipeline {
agent any

tools {
nodejs "nodejs"
}

stages {
stage('Dependency') {
steps {
sh 'npm install'
}
}
# 我们在此添加过一个 stage,见下面👇
stage('Build') {
steps {
sh 'npm run clean'
sh 'npm run build'

我们添加过一个 ​​stage​​​ 来完成我们对 ​​build_info.json​​ 文件的写入。

stage('Version') {
steps {
script {
def amap =
'build_number': BUILD_NUMBER, # 构建号
'job_name': JOB_NAME # 任务名称
]

# 写入文件
writeJSON file: WORKSPACE+'build_info.json', json: amap # WORKSPACE 根目录

Yeah,思路还可以... Right?

下面进入第二步骤:读取 ​​build_info.json​​​ 的内容,我截取 ​​version.js​​ 生产环境那部分的内容:

// 引入生成的 build_info.json 文件
let buildInfo = require('./build_info.json');

if(config.env === 'production') {
// 获取构建的版本号,否则获取默认的版本
versionObj.version = buildInfo.build_number || config.version

完成上面的文件之后,你就可以发布到相关的环境,顺利的话,在页面上你可以看到相关的版本号了。

这篇文章跟 ​​angular​​​ 的关联不是很大,只是用来打配合 ​​jenkins​​​。下一篇文章是关于使用 ​​Angular​​​ 进行 ​​spa​​ 开发的内容,敬请期待。

【完】✅

举报

相关推荐

0 条评论