Skip to main content

配置 Jenkins

使用浏览器访问以下链接,选择安装社区推荐的插件(下文将主要用到 Pipeline):

http://192.168.1.247:8920

可选:通过 Manage Jenkins > Manage Plugins 安装 locale 插件,安装后可设置界面语言。

通过 Manage Jenkins > Manage Users 创建 dxsuite 用户。

通过 Manage Jenkins > Configure Global Security 取消 CSRF Protection,从而使得本地脚本可以调用 Jenkins 接口以触发 Pipeline 任务流。

通过 New Item 创建类型为 Pipeline 的新任务,命名为 dxsuite-cloud-user,该任务将在用户账号业务模块代码提交后自动对其进行编译及发布:

属性说明
Pipeline / DefinitionPipeline script from SCM标明从 SCM 读取 Pipeline 脚本
Pipeline / Definition / SCMGit标明 SCM 类型为 Git
Pipeline / Definition / SCM / Repositories / Repository URLdxsuite@127.0.0.1:cloud/user用户账号模块的 Git 库地址
Pipeline / Definition / SCM / Repositories / Credentialsnone无密码
Pipeline / Definition / SCM / Repositories / Branches to build*/master编译的分支
Pipeline / Definition / Script pathJenkinsfile标明 Pipeline 脚本文件路径,为模块跟路径的 Jenkinsfile 文件

create pipeline configure pipeline

按照同样的方式为所有模块创建 Pipeline 任务。

在服务器上为每一个模块添加 Git 的 Hook 脚本,用于在代码库被更新时触发 Jenkins 的 Pipeline 任务流。

以用户账号模块为例,创建文件 ~/repositories/cloud/user.git/hooks/post-receive,设置以下内容,并将其设置为可执行:

#!/usr/bin/env bash
curl -I -X POST http://dxsuite:Pas5w0rd@127.0.0.1:8920/job/dxsuite-cloud-user/build

在每一个模块的根路径下添加一个名为 Jenkinsfile 的文件,并设置以下内容:

pipeline {
agent any
stages {
stage('build') {
steps {
sh 'mvn clean deploy'
}
}
}
}

TODO: 添加自动测试的命令

TODO: 通过 post 指令实现发布后自动重启服务

应先在服务器上通过手动的方式对项目进行一次整体部署,以确保子模块所依赖的模块都已发布到制品库。