热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《Jenkins从零到壹》Jenkins集成gitlab自动化构建(JAVA小虚竹建议收藏)

《Jenkins从零到壹》Jenkins集成gitlab自动化构建(JAVA小虚竹建议收藏)-❤️作者简介:Java领域优质创作者?,CSDN博客专家认证?❤️技术活,该赏❤️点

❤️作者简介:Java领域优质创作者?,CSDN博客专家认证?
❤️技术活,该赏
❤️点赞 ? 收藏 ⭐再看,养成习惯

有粉丝问我,能不能在gitlab提交后,自动化部署jenkins?趁着国庆期间把文章码好了,分享给我的粉丝,同时也分享给大家。

Jenkins使用教程相关系列 目录

环境准备

安装jenkins:

0❤️Jenkins从零到壹❤️ :安装-windows 使用jenkins.msi安装

安装gitlab:

《gitlab从零到壹》基于docker-gitlab安装

jenkins配置

安装插件

安装 Gitlab Hook 插件

安装Build Authorization Token Root插件

安装Generic Webhook Trigger

安装GitLab

插件安装成功后,重启jenkins。

gitlab配置

新创建测试项目

新创建一个简单的spring boot项目

启动后,访问效果

jenkins新建ci-test项目

如图操作:

丢弃旧的构建

源码管理选择git

选择对应的账号密码,指定分支

Failed to connect to repository : Error performing git command: git.exe ls-remote -h http://192.168.88.131:9980/root/ci_test.git HEAD

选择git时,有报错,这个错误可能是git的版本太低,要升级下版本或者是jenkins没有配置git。

解决方案:接着登录jenkins界面,依次打开"系统管理" -> “Global Tool Configuration” 全局工具配置-> “Git” -> “Path to Git executable

保存后,再返回项目的配置,重新配置git信息

这时候就没有报错了

构建触发器,添加webhook

需要安装插件Generic Webhook Trigger、GitLab两个插件才能有此选项

记住后面的GitLab CI Service URL后面要填在gitlab的webhooks中

gitlab配置webhooks

填写URL及token(由于我的没做ssh认证,所以没用ssl认证)

URL:上面配置的jenkins 的url

保存后报错

Urlis blocked: Requests to the local network are not allowed

解决方案:

进入 admin area

测试webhook是否成功

操作后报错

Hook executed successfully but returned HTTP 403

HTTP ERROR 403 anonymous is missing the Job/Build permission

URI:/project/ci_test
STATUS:403
MESSAGE:anonymous is missing the Job/Build permission
SERVLET:Stapler

Powered by Jetty:// 9.4.42.v20210604

解决方案:


匿名用户具有可读权限

去掉跨站点请求伪造

Jenkins版本自2.204.6以来的重大变更有:删除禁用 CSRF 保护的功能

Jenkins 2.204.6以前的版本 配置:

Jenkins 2.204.6及以上的版本 配置:

在Jenkins启动前加入相关取消保护的参数配置后启动Jenkins,即可关闭CSRF,配置内容如下:

-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true

重启jenkins,看效果,如图,就是关闭了CSRF。

点击测试,返回200的话就表示成功了。

验证自动化构建

向gitlab提交代码

新增了个接口

push到gitlab

jenkins查看

如图,已经自动构建成功了

我们看看日志

参考

解决“Hook executed successfully but returned HTTP 403”的问题:https://blog.csdn.net/anqixiang/article/details/104969902

高版本Jenkins关闭跨站请求伪造保护(CSRF):https://www.cnblogs.com/kazihuo/p/12937071.html

今天是持续写作的第 17 / 100 天。
可以关注我,点赞我、评论我、收藏我啦。


推荐阅读
  • SSL 错误:目标主机名与备用证书主题名称不匹配
    在使用 `git clone` 命令时,常见的 SSL 错误表现为:无法访问指定的 HTTPS 地址(如 `https://ip_or_domain/xxxx.git`),原因是目标主机名与备用证书主题名称不匹配。这通常是因为服务器的 SSL 证书配置不正确或客户端的证书验证设置有问题。建议检查服务器的 SSL 证书配置,确保其包含正确的主机名,并确认客户端的证书信任库已更新。此外,可以通过临时禁用 SSL 验证来排查问题,但请注意这会降低安全性。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
  • 通过Apache Commons FileUpload组件,可以根据具体应用需求实现多样化的文件上传功能。在基本应用场景中,开发者可以通过调用单一方法来解析Servlet请求,从而轻松处理文件上传任务。此外,该组件还提供了丰富的配置选项和高级功能,支持大文件上传、多文件并发处理等复杂场景,显著提升了文件上传的效率和可靠性。 ... [详细]
  • Permissiondenied(publickey).fatal:Couldnotreadfromremoterepository.没有权限(publickey)。致命:无法从远 ... [详细]
  • Iamnotveryexperiencedwithrubyingeneralandtryingtoinstallanewomniauthproviderinthe ... [详细]
  • gitlab改版了,故运维同事们又迁移了jenkins,原本配好的可以成功打包的项目打包失败了。输出错误日志StartedbyuserlhyBuildinginworkspaceu ... [详细]
  • 在安装 iOS 开发所需的 CocoaPods 时,用户可能会遇到多种问题。其中一个常见问题是,在执行 `pod setup` 命令后,系统无法连接到 GitHub 以更新 CocoaPods/Specs 仓库。这可能是由于网络连接不稳定、GitHub 服务器暂时不可用或本地配置错误等原因导致。为解决此问题,建议检查网络连接、确保 GitHub API 限制未被触发,并验证本地配置文件是否正确。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 本文深入探讨了使用Puppet进行软件包分发与管理的方法。首先介绍了fpm这一跨平台的软件包制作工具,其简便的操作流程使得软件包的创建变得轻松快捷。fpm的项目地址为:https://github.com/jordansissel/fpm。通过结合Puppet和fpm,可以实现高效、可靠的软件包管理和部署。 ... [详细]
  • 探讨 `org.openide.windows.TopComponent.componentOpened()` 方法的应用及其代码实例分析 ... [详细]
  • GitLab是利用RubyonRails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类 ... [详细]
  • gitlab 提交到测试服务器,再发版到生产服务器流程整理
    1去地址https:gitpg.pam.ee注册,完成后登录,通知管理员把自己拉到开发组,上传自己的sshkey(生成命令ssh-keygen-trsa-C“104610934@ ... [详细]
  • Gitlab下私有Go modules的搭建配置
    Gitlab下私有Gomodules的搭建配置-前言团队目前使用GitlabCE作为Golang代码仓库使用,需要把一些常用的公共代码块(工具类、RPC接口等)独立成模块供其他 ... [详细]
author-avatar
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有