本篇文章带大家继续angular的学习,了解一下怎么使用Jenkins 结合 Angular 展示构建版本,希望对大家有所帮助!

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

如下:

1.png

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

根目录添加文件 build_info.json

{ }
登录后复制

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

具体的实现思路如下:

  • 在构建的过程中执行 Jenkinsfile 生成 build_info.json 文件

  • 在对项目打包的时候,针对不同的环境考虑是否获取 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 开发的内容,敬请期待。

点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部