四时宝库

程序员的知识宝库

Jenkins 结合 Angular 展示构建版本 - 掘金

#头条创作挑战赛#

本文同步本人掘金平台的文章:https://juejin.cn/post/7081642981890981895

最近在巩固相关的知识内容,以 angular 为主,在 Angular 结合 Git Commit 版本处理 文末我们留下了疑问? 下面将问题具体化

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

如下:

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 开发的内容,敬请期待。

【完】?

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接