查看“Jenkins进行持续集成”的源代码
←
Jenkins进行持续集成
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
仔细总结一下,我们会发现,除了编写代码,我们每天有相当一部分时间花在了编 译、运行单元测试、生成文档、打包和部署等烦琐且不起眼的工作上,这就是构建。如果我们现在还手工这样做,那成本也太高了,于是有人用软件的方法让这一系 列工作完全自动化,使得软件的构建可以像全自动流水线一样,只需要一条简单的命令,所有烦琐的步骤都能够自动完成,很快就能得到最终结果。 Maven真比自己的“规范化Ant”强大?其实他不知道自己只是在重新发明轮子,Maven已经有一大把现成的插件,全世界都在用,你自己不用写任何代码! =常用CI/CD= 最最流行的,也是使用最多的Jenkins 有着持续集成DNA的ThoughtWorks GO。理念:"Deployment as pipeline" (华为容器平台应该是基于GO做的二次开发实现) Atlassian工具链之一的Bamboo 与Gitlab紧密集成的Gitlab CI 专为开源打造的Travis CI,与Github紧密集成 使用Python语言实现的Buildbot,相信Pythoner看到会喜欢 =安装= == 通过docker安装== [[基于Docker的Jenkins持续集成]] ==普通安装== ip 192.168.0.16 <pre> docker pull jenkins [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkins latest cd14cecfdb3a 2 weeks ago 696MB docker run --name=jenkins -it -u root -d -p 8080:8080 -p 50000:50000 -v /data/jenkins:/var/jenkins_home cd14cecfdb3a --name=jenkins 命名 -it 交互模式运行 -u root root权限 -d 后台运行 -p 8080:8080 映射端口 -p 50000:50000 映射端口 -v /data/jenkins:/var/jenkins_home 映射目录 3f08dc4f3f5d 本地镜像ID docker images name 命令可查看ID eg #docker images jenkins #官方 mkdir -p /data/jenkins-data docker run \ --name=jenkins \ -u root \ --rm \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v /data/jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean #在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启: $docker run --restart=always #如果已经启动了则可以使用如下命令: $docker update --restart=always <CONTAINER ID> 登入容器: docker exec -it jenkins /bin/bash 同步容器时间 在Dockerfile中加入 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && ntpdate cn.pool.ntp.org 或 容器运行后把容主机的/usr/share/zoneinfo/Asia/Shanghai 复制到容器的/etc/localtime #先cp 到 /data/jenkins cp /usr/share/zoneinfo/Asia/Shanghai /data/jenkins plubs Publish Over SSH Maven Integration Build clean install </pre> [https://jenkins.io/zh/doc/book/installing/#docker 安装Jenkins zh] http://cn.jenkins.io/doc/book/installing/ 安装请见 [[Docker入门]] [http://www.cnblogs.com/stulzq/p/8627360.html 使用Docker安装Jenkins] [https://www.cnblogs.com/stulzq/p/9297260.html Jenkins 集群搭建] =jenkins使用= <pre> 要先安装maven 什么的 Build Root POM pom.xml Goals and options clean install Post Steps Ex shell cd /var/jenkins_home/workspace/doll-api-test/target scp doll-api-test.jar root@192.168.50.160:/data/update/boot/doll-api sen build aritcle ex command #记得要要全局那加ssh server </pre> ==gradle == Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。 当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。 和maven同级,更简洁一些 https://docs.gradle.org/current/userguide/userguide.html ==maven== <pre> Build->Goals and options ->clean install -Pbeta -Dmaven.test.skip=true </pre> [https://blog.csdn.net/xlgen157387/article/details/68961371 Jenkins部署Maven多环境项目(dev、beta、prod)的参数设置] [https://blog.csdn.net/u011781521/article/details/76696677 Jenkins系列(三)----Maven项目配置详解] ===maven 配置文件 === <pre>maven 配置 可以在母机修改 /docker/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/jenkins-in-maven/conf下修改setting.xml文件。 母机可能的目录 /home/data/docker/volumes/docker4jenkins_jenkins_home/_data/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.2/conf 位置 153 <mirror> 154 <id>mirrorId</id> 155 <mirrorOf>repositoryId</mirrorOf> 156 <name>Human Readable Name for this Mirror.</name> 157 <url>http://my.repository.com/repo/path</url> 158 </mirror> 159 --> 160 <mirror> 161 <id>nexus</id> 162 <mirrorOf>*</mirrorOf> 163 <url>http://192.168.4.189:8081/repository/maven-public/</url> 164 </mirror> 165 </mirrors> </pre> [https://blog.csdn.net/xxsstf/article/details/84991931 Jenkins使用, maven插件配置修改] ===snapshot快照仓库和release发布仓库=== maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版 本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写)。release版本不允许修改,每次进行release版本修改,发布必须提升版本号。而snapshot一般是开发过程中的迭代版本,snapshot更新后,引用的项目可以不修改版本号自动下载构建。 [https://www.cnblogs.com/molao-doing/articles/6379216.html MAVEN snapshot快照和release发布库的区别、作用] [https://www.cnblogs.com/EasonJim/p/6852840.html Maven快照机制(SNAPSHOT)] [http://www.huangbowen.net/blog/2016/01/29/understand-official-version-and-snapshot-version-in-maven/ 理解Maven中的SNAPSHOT版本和正式版本] ==git branch== 这里应该 填写上操作过程 在我的geany上 [https://blog.csdn.net/jackyzheng/article/details/78750047 goodJenkins Git Parameter 插件配置过程] [https://my.oschina.net/u/3493518/blog/1510531 Jenkins插件之——git Parameter插件] [https://blog.csdn.net/hwhua1986/article/details/53841741 Jenkins:使用Git Parameter插件实现tag或分支的选择性构建] [https://blog.csdn.net/u012076316/article/details/52056107 jenkins构建时支持git选择分支] [https://blog.csdn.net/qq_20641565/article/details/79132797 jenkins插件Git Parameter Plug-In分支构建项目] [http://buxin-2008.iteye.com/blog/2357340 jenkins进行git多分支的docker镜像构建] ==android== [ https://blog.csdn.net/youshi520000/article/details/81027940 Android 使用 Jenkins 实现自动化打包【流程】&【踩坑] ==启动== ===supervisor=== <pre> #配合supervisor,把Jenkins直接变成一个服务。 #可以在Linux上创建一个ci用户,然后,用supervisor启动并指定9090端口: # /etc/supervisor/conf.d/ci.conf [program:ci] command=java -jar /home/ci/jenkins.war --httpPort=9090 user=ci autostart=true autorestart=true startsecs=30 startretries=5 </pre> =权限控制= ==Role-based Authorization Strategy== Role-based Authorization Strategy 超级用户 root root other evan group ops java admin ==基于项目(job)== <pre> Project roles 创建一个 dev 只配置所以 dev开头的内网项目 Role to add dev Pattern dev.* #配置 选择【 Manage Roles】 在【Global roles】创建一个新的全局角色 anyone,该角色不开放系统权限,只读. 然后把你的号添加到 Global roles Item roles 里面 加入你的号 并勾上 dev 注意: Global roles 必要有,不登录了什么 都没提示全局没有读权限 </pre> ==权限see also== [https://blog.csdn.net/Gred01/article/details/78587290 Jenkins教程四基于Role-based Authorization Strategy的用户权限管理] [https://my.oschina.net/u/3413394/blog/1576357 enkins教程四 基于【Role-based Authorization Strategy】的用户权限管理] [https://www.jianshu.com/p/7e148bcfb96e Jenkins使用教程之用户权限管理(包含插件的安装)] [https://www.jianshu.com/p/6c274d9b22ad Jenkins自动化部署-权限管控篇 (六)] =插件= ==dashboard 插件== dashboard 插件 [https://wiki.jenkins-ci.org/display/JENKINS/Dashboard+View Dashboard View] 用来自定义自己的主页,例如对下列的 jenkins 的主页 == Wall display== 用来将 jobs 的状态更加直观地显示在大屏幕上 === ssh server=== ====troubleshooting==== <pre> jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [win8r2]. Message [USERAUTH fail]] 在jenkins 上使用publish over ssh ,报上述错误, ssh server 1. 配置里面添加 jenkins pri key 2.远程被 jenkins 的远程那里添加jenkin的pub key </pre> https://ask.csdn.net/questions/379784 =jenkins = =xk= <pre> dev 开发环境 beta 测试环境 release 正式环境 </pre> =DB = [https://www.jianshu.com/p/e0c1fbc98f0d Jenkins自动化部署-数据库篇 (五)] [https://stackoverrun.com/cn/q/11775565 需要在Jenkins管道脚本中执行SQL脚本的工作策略] [https://www.zhihu.com/question/61737048 jenkins 进行持续集成的时候,关于SQL执行的问题] [https://www.jianshu.com/p/e0c1fbc98f0d Jenkins自动化部署-数据库篇 (五)] =磁盘处理= [[Jenkins服务器磁盘空间管理]] =trouble shooting= == WeChat.java:[266,43] 找不到符号 == <pre> [ERROR] /root/.jenkins/workspace/release_read/xtwl_service/src/main/java/org/platform_service/universal/pay/WeChat.java:[266,43] 找不到符号 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project xtwl_service: Compilation failure 原来是我用了 clean package -Prelease 之前还替换了配置文件 哈哈 </pre> == offline == 点击Continue,大部分人都会出现这个界面,毕竟在天朝,我们先选择跳过 ==[[Jenkins更多错误]]== =进阶= [https://www.cnblogs.com/shenh/p/8963688.html jenkins + pipeline构建自动化部署] [https://blog.csdn.net/wh211212/article/details/77482138 Jenkins + Pipeline 构建流水线发布] =参考= [https://jenkins-zh.cn/ Jenkins 中文社区] [https://www.cnblogs.com/along21/p/9724036.html Jenkins持续集成01—Jenkins服务搭建和部署] [[Jenkins用户手册]] [https://jenkins.io/doc/book/installing/#docker Installing Docker] [https://blog.csdn.net/jackyzheng/article/category/6849960 jenkins docs ] [http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html Maven的安装、配置及使用入门] [https://zh.wikipedia.org/wiki/Apache_Maven Apache Maven] [https://zh.wikipedia.org/wiki/Gradle Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具] [https://www.jianshu.com/p/1eff16f60297 Maven 使用教程] [https://www.jianshu.com/p/60fb231a160e Jenkins学习之自动构建部署maven项目 have emailetc] [https://www.liaoxuefeng.com/article/001463233913442cdb2d1bd1b1b42e3b0b29eb1ba736c5e000 使用Jenkins进行持续集成] [http://blog.51cto.com/fluagen/40086 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)] [http://blog.51cto.com/215687833/1916915 使用Jenkins 自动部署发布] [https://www.cnblogs.com/yjmyzz/p/jenkins-tutorial-part-1.html jenkins 入门教程(上)] [https://www.cnblogs.com/yjmyzz/p/jenkins-tutorial-part-2.html jenkins 入门教程(中)] [https://www.cnblogs.com/yjmyzz/p/jenkins-tutorial-part-3.html jenkins 入门教程(下)] [https://blog.csdn.net/true100/article/details/47950215 Android项目利用jinkens自动打包] [http://blog.51cto.com/linuxg/1792086 Jenkins 持续集成平台构建之使用nexus搭建maven私有仓库] [https://www.liaoxuefeng.com/article/001463233913442cdb2d1bd1b1b42e3b0b29eb1ba736c5e000 liaoxuefeng使用Jenkins进行持续集成] [https://blog.csdn.net/yelllowcong/article/details/78285230 Jenkins之配置Maven和JDK-yellowcong] [https://www.cnblogs.com/yangxia-test/p/4354328.html Jenkins学习二:Jenkins安装与配置] [https://blog.csdn.net/Gred01/article/details/78481606 基于Linux实现Jenkins+maven+git+tomcat的自动化构建部署项目] [https://blog.csdn.net/gbenson/article/details/50970289 Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署] ==docker== [https://juejin.im/post/5994d93ef265da24843e416c Jenkins与Docker的持续集成实践] [https://www.cnblogs.com/xuezhigu/p/6690783.html 基于Docker构建带有Rsync的Jenkins] [https://www.cnblogs.com/soar1688/p/6833540.html Jenkins Docker安装及Docker build step插件部署配置] [https://www.kubernetes.org.cn/5230.html 原创:jenkins+github+docker+maven自动化构建部署] == 权限== [https://blog.whsir.com/post-1785.html jenkins权限管理,不同用户显示不同项目] [https://www.cnblogs.com/zz0412/p/jenkins_jj_14.html Jenkins进阶系列之——14配置Jenkins用户和权限] [https://www.jianshu.com/p/7e148bcfb96e Jenkins使用教程之用户权限管理(包含插件的安装)] [https://blog.csdn.net/itfootball/article/details/71404912 Jenkins用户权限管理] ==maven== [https://blog.csdn.net/xlgen157387/article/details/68961371 Jenkins部署Maven多环境项目(dev、beta、prod)的参数设置] [http://bookong.iteye.com/blog/2036633 通过Maven和Jenkins插件解决Java项目的配置管理] ==优化== [http://softcook.logdown.com/posts/728344-method-for-reducing-the-jenkins-project-build-disk-space 减少jenkins项目构建磁盘空间的方法] [https://blog.csdn.net/ZZY1078689276/article/details/77531325 Jenkins丢弃旧的构建] [https://blog.csdn.net/qq_27791709/article/details/78835912 Jenkins-工作区清理插件] [[category:ops]]
返回至
Jenkins进行持续集成
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
我的导航
关于我
shell
python
ops
linuxchina.net
blog.linuxchina
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息