一、新建任务

1、首先进入 Jenkins 控制台

2、点击 “新建Item”,命名为 “Gitee Test”;选择 “Freestyle project”,点击 “确定”

二、General 配置

1、填写描述信息;勾选 “Discard old builds”,指定“保持构建的天数”“保持构建的最大个数”,可根据你的构建服务器资源进行配置,因为本机分配资源不是很充足,这里全部指定为:1

描述信息:Jenkins 基于 Gitee 项目自动构建示例

2、前往某个任务(如’Gitee Test’)的 Configure -> General指定 Gitee connection 为 之前配置的 Jenkins-Gitee

三、源码管理

存储在 GitHub、Gitee、Gitlab 等平台的Git项目可选择Git模式;填写 Repository URL,添加 Credentials 即可完成代码厂库的配置。

1、勾选 Git
2、配置源码仓库信息

输入你的仓库地址(Repository URL);例如 git@your.gitee.server"">`git@your.gitee.server:gitee_group/gitee_project.git`

配置 Credentials

点击 Add - > Jenkins

Domain 选择 Global credentials
Kind 选择 Username with password
Scope 选择你需要的范围
Username, password 输入你的码云账户、密码
ID, Descripiton 中输入你想要的 ID 和描述即可。

配置 Advanced(高级)选项
  • Name 字段中输入 origin
  • Refspec 字段输入 +refs/heads/*:refs/remotes/origin/* +refs/pull/*/MERGE:refs/pull/*/MERGE
3、Branches to build :

指定分支(为空时代表any) 如: */master

  • 对于单仓库工作流输入: origin/${giteeSourceBranch}

  • 对于 PR 工作流输入: pull/${giteePullRequestIid}/MERGE

4、Additional Behaviours 选项:
4.1、对于单仓库工作流,如果你希望推送的分支构建前合并默认分支(发布的分支),可以做以下操作:
  • 点击 Add 下拉框
  • 选择 Merge before build
  • 设置 Name of repository 为 origin
  • 设置 Branch to merge to 为 ${ReleaseBranch} 即您要合并的默认分支(发布分支)
4.2、对于 PR 工作流,码云服务端已经将 PR 的原分支和目标分支作了预合并,您可以直接构建,如果目标分支不是默认分支(发布分支),您也可以进行上诉构建前合并。

配置如图所示:

四、构建触发器

如果需要远程自动触发Jenkins持续集成,则需要通过该功能进行触发器的配置;比如这里配置了代码提交后自动进行构建

1、Enabled Gitee triggers 勾选您所需要的构建触发规则,如 Push Event, Opened Merge Request Events,勾选的事件会接受 WebHook,触发构建。目前支持触发事件有:
  • Push Events :推送代码事件
  • Opened Merge Request Events :提交 PR 事件
  • Updated Merge Request Events :更新 PR 事件
  • Accepted Merge Request Events :接受/合并 PR 事件
  • Closed Merge Request Events :关闭 PR 事件
  • Approved Pull Requests : 审查通过 PR 事件
  • Tested Pull Requests :测试通过 PR 事件
2、Enable [ci-skip] 该选项可以开启支持 [ci-skip] 指令,只要commit message 中包含 [ci-skip],当前commit 即可跳过构建触发。
3、Ignore last commit has build 该选项可以跳过已经构建过的 Commit 版本。
4、Allowed branches 可以配置允许构建的分支,目前支持分支名和正则表达式的方式进行过滤。
5、Secret Token for Gitee WebHook 该选项可以配置 WebHook 的密码,该密码需要与码云 WebHook配置的密码一致方可触发构建。

注意:若 PR 状态为不可自动合并,则不触发构建。

五、构建环境

如果有特殊的构建环境需求,可在该部分进行相关配置;

这里仅配置了 “Add timestamps to the Console Output”,构建时控制台输出的内容加上时间戳

六、构建

前面完成了构建的准备工作,构建任务则是在该部分进行配置.

6.1、点击“增加构建步骤”,然后选择“Execute shell”

6.2、在命令框内增加如下构建脚本
cd $WORKSPACE/jeebiz-admin-parent/$moudle
service=${moudle#*/}
case $deploy in 
build)
    echo "build"
    /usr/local/maven3/bin/mvn clean package -U
    docker build -t 192.168.1.114/jeebiz-admin/$service:$BUILD_NUMBER .
    docker login -uadmin -pKnowway123 192.168.1.114
    docker push 192.168.1.114/jeebiz-admin/$service:$BUILD_NUMBER
    docker rmi --force `docker images |grep $service|awk '{print $3}'`
    ;;
deploy)
    echo "deploy"
    /usr/local/maven3/bin/mvn clean package -U
    docker build -t 192.168.1.114/jeebiz-admin/$service:$BUILD_NUMBER .
    docker login -uadmin -pKnowway123 192.168.1.114
    docker push 192.168.1.114/jeebiz-admin/$service:$BUILD_NUMBER
    docker rmi --force `docker images |grep $service|awk '{print $3}'`
    rancher login https://192.168.2.250/v3 --token token-td2tt:pkgvwss26vwxh52qckkxzrfgm86pcbpblwxn4qs464l49jncvqpsch  --context c-w59t6:p-8dv8x --skip-verify
    rancher kubectl set image Deployment/$service $service=192.168.1.114/jeebiz-admin/$service:$BUILD_NUMBER -n $profile
    ;;
rollback)
    echo "rollback"
    echo "rollback version:$version"
    rancher login https://192.168.2.250/v3 --token token-td2tt:pkgvwss26vwxh52qckkxzrfgm86pcbpblwxn4qs464l49jncvqpsch  --context c-w59t6:p-8dv8x --skip-verify
    rancher kubectl set image Deployment/$service $service=192.168.1.114/jeebiz-admin/$service:$version -n $profile
    ;;
*)
    exit
    ;;
esac

七、构建后操作

前往任务配置的构建后配置: Configure -> Post-build Actions 选项卡

1、构建结果回评至码云

1、点击 Add post-build action 下拉框选择:Add note with build status on Gitee pull requests
2、Advanced 中可以配置:

  • Add message only for failed builds :仅为构建失败回评到码云
  • 自定义各状态的回评内容(内容可以引用 Jenkins 的环境变量,或者自定义的环境变量)
    2、若开启该功能,还可将不可自动合并的状态回评至码云
2、构建成功自动合并PR

点击 Add post-build action 下拉框选择:Accept Gitee pull request on success

6、新建码云仓库 WebHook

进入源码管理配置中设置的码云仓库中,进入 管理 -> WebHooks

添加 WebHook, URL 填写 触发器配置:Build when a change is pushed to Gitee. Gitee webhook URL 中所示 URL,如:: http://127.0.0.1:8080/jenkins/project/fu
密码填写:触发器配置第 5 点中配置的 WebHook密码,不设密码可以不填
勾选 PUSH, Pull Request

测试推送触发构建

码云的 WebHook 管理中选择勾选了PUSH的 WebHook 点击测试,观察 Jenkins 任务的构建状态
码云仓库页面编辑一个文件提交,观察 Jenkins 任务的构建状态

测试PR触发构建

码云的 WebHook 管理中选择勾选了 Pull Request 的 WebHook 点击测试,观察 Jenkins 任务的构建状态
在码云仓库中新建一个Pull Request,观察 Jenkins 任务的构建状态
作者:Jeebiz  创建时间:2019-10-09 01:07
 更新时间:2023-12-28 09:15