Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(下)

简介: Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)

Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(上)+https://developer.aliyun.com/article/1492251

5、点击“New Item” 选中Maven Project,输出item 名称,选择"OK"

6、配置job的Gitee源代码仓库信息

配置Gitee代码仓库的信息

仓库授权

7、配置打包方式

8、配置执行脚本

执行脚本参考内容

#!/bin/bash
# 服务名称
SERVER_NAME=xxxx服务名
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行  
JAR_NAME=demo-0.0.1-SNAPSHOT
# 源jar路径  
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/xxxx服务名/target
# 打包完成之后,把jar包移动到运行jar包的目录
JAR_WORK_PATH=/var/jenkins_home/workspace/xxxx服务名/target
 
echo "查询进程id-->$JAR_NAME"
# print $1 这里的1是PID所属的列名。可以在jenkis中使用ps -ef 命令确定
PID=`ps -ef | grep "$JAR_NAME" | awk '{print $1}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
  kill -9 $id  
  echo "killed $id"  
done
echo "结束进程完成"
 
#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar
 
BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar  &

9、保存配置。

10、开始Build,第一次构建时间较长。建议可以将Maven镜像修改为国内镜像。

11、观察发现Build成功

12、映射端口号, 开放容器内部的应用端口号。

建议先删除原先的容器,避免8080端口的占用。由于我们做了数据卷挂载,所有重启容器也不需要重新配置Jenkins。

docker run -d -p 8080:8080 -p 8082:8082 -p 50000:50000 -v jenkins_data:/var/jenkins_home --name firstJenkis jenkinsci/blueocean

13、回到Jenkins界面,重新构建。等待构建完成后访问端口。

14、在IDEA中进行修改,并提交到Gitee。

回到Jenkins重新Build,观察日志发现自动在下载master分支下的最新版本。

15、等待构建完成,重新访问,okey,so much for this chapter!

Jenkins + Docker + Gitee 自动化实操

Builder Trigger 介绍

实现自动化部署,只需要配置好构建触发器以及触发的事件即可。前往任务配置的触发器构建: Configure -> Build Triggers 选项卡

  1. Enabled Gitee triggers勾选您所需要的构建触发规则,如Push Event,Opened Merge Request Events勾选的事件会接受WebHook,触发构建。目前支持触发事件有:
  • Push Events :推送代码事件
  • Commit Comment 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 事件
  1. Build Instruction Filter
  • None : 无过滤
  • [ci-skip] skip build :commit message 或者 PR 说明包含 [ci-skip] 时,跳过构建触发。
  • [ci-build] trigger build :commit message 或者 PR 说明包含 [ci-build] 时,触发构建。
  1. Ignore last commit has build 该选项可以跳过已经构建过的 Commit 版本。
  2. Cancel incomplete build on same Pull Requests 该选项在 PR 触发构建时,会判断是否存在相同 PR 且未完成的构建,有则取消未完成构建,再进行当前构建。
  3. Ignore Pull Request conflicts 该选项在 PR 触发构建时,会根据 PR 冲突情况选择是否进行构建。
  4. Allowed branches 可以配置允许构建的分支,目前支持分支名和正则表达式的方式进行过滤。
  5. Secret Token for Gitee WebHook 该选项可以配置 WebHook 的密码,该密码需要与Gitee WebHook配置的密码一致方可触发构建。
  6. 注意:若 PR 状态为不可自动合并,则不触发构建。

实操

1、配置Build Trigger

生成密钥

2、映射webHook,并进行添加绑定。

3、在Gitee手动测试,发现成功

4、提交代码,

当提交后,发现该job自动build 中。

测试成功!!! 散花。

FAQ

配置git仓库后Jenkins从git仓库拉取地址失败,出现错误“Host Key Vertication Failed”

1、需要在Jenkis容器中生成公钥,并配置到对应的Git远程仓库。

2、注意使用类似命令git ls-remote -h 仓库地址 HEAD 来注册下远程仓库在Jenkis容器内部的信任。

Jenkins 和 Gitee 配置自动部署时,在Gitee的测试中显示“ HTTP ERROR 403 anonymous is missing the Job/Build permission”

1、在Jenkins上安装Role-based Authorization Strategy插件。

2、在Jenkins的“Manage Jenkins-> Configure Global Security”配置如下图的权限。

参考地址1:https://gitee.com/oschina/Gitee-Jenkins-Plugin/issues/IWZSR

参考地址2: https://www.cnblogs.com/Dy1an/p/11202544.html

参考地址3: https://gitee.com/help/articles/4193

关注公众号:熊猫Jay字节之旅,了解更多 AI 技巧 ~



相关文章
|
5月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
697 0
|
3月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
460 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
测试技术 开发工具 git
利用Git Hooks自动化你的开发流程
Git Hooks 是 Git 的强大功能,允许在特定事件(如提交、推送、合并请求)发生时自动执行脚本。通过合理设置和使用 Git Hooks,可以自动化测试、代码风格检查等任务,提高代码质量和开发效率。本文介绍了如何设置和使用常用的 Git Hooks,包括 `pre-commit`、`pre-push` 和 `post-merge`,并提供了最佳实践建议。
|
8月前
|
人工智能 API 开发工具
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
GitHub MCP Server是基于Model Context Protocol的服务器工具,提供与GitHub API的无缝集成,支持自动化处理问题、Pull Request和仓库管理等功能。
1617 2
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
|
10月前
|
监控 jenkins 测试技术
Ansible与Jenkins:自动化工具的对比
Ansible和Jenkins是自动化领域的两大巨头。Ansible专注于配置管理和任务自动化,采用无代理架构,使用YAML定义配置,具有幂等性和可扩展性。Jenkins则擅长持续集成和持续交付(CI/CD),支持丰富的插件生态系统,适用于自动化构建、测试和部署。两者各有优势,Ansible适合配置管理与大规模部署,Jenkins则在CI/CD方面表现出色。结合使用可创建更强大的自动化工作流,提升团队生产力和软件质量。选择工具时应根据具体需求决定。
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
168 9
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
2002 10
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
236 5
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。

热门文章

最新文章