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

本文主要是介绍《Jenkins从零到壹》Jenkins集成gitlab自动化构建(JAVA 小虚竹 建议收藏),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

image-20211008165328968

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

Jenkins使用教程相关系列 目录

环境准备

安装jenkins:

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

安装gitlab:

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

jenkins配置

安装插件

image-20211006203056499

安装 Gitlab Hook 插件

image-20211006203801041

image-20211006203522961

安装Build Authorization Token Root插件

image-20211006203904022

image-20211006204017661

安装Generic Webhook Trigger

image-20211006233729487

安装GitLab

image-20211006233757270

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

gitlab配置

新创建测试项目

image-20211006204548308

image-20211006204716272

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

image-20211006230751636

image-20211006230825084

启动后,访问效果

image-20211006230936709

jenkins新建ci-test项目

如图操作:

image-20211006231244023

image-20211006231312831

丢弃旧的构建

image-20211006233156002

源码管理选择git

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

image-20211006231752188

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

image-20211006232423574

image-20211006232505116

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

这时候就没有报错了

image-20211006232618020

构建触发器,添加webhook

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

image-20211006234236490

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

gitlab配置webhooks

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

URL:上面配置的jenkins 的url

image-20211006235129681

保存后报错

Urlis blocked: Requests to the local network are not allowed

image-20211007000009086

解决方案:

进入 admin area

image-20211007000510592

测试webhook是否成功

image-20211007000633625

image-20211007000702155

操作后报错

Hook executed successfully but returned HTTP 403 Error 403 anonymous is missing the Job/Build permission

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

image-20211007000840148

解决方案:

20200319160927324
匿名用户具有可读权限

image-20211007103622408

去掉跨站点请求伪造

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

Jenkins 2.204.6以前的版本 配置:

image-20211007103710537

Jenkins 2.204.6及以上的版本 配置:

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

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

image-20211007104040740

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

image-20211007104107812

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

image-20211007111633278

验证自动化构建

向gitlab提交代码

新增了个接口

image-20211007112110312

image-20211007112058532

push到gitlab

image-20211007112337499

jenkins查看

image-20211007112511683

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

我们看看日志

image-20211007112553985

image-20211007112845365

参考

解决“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 天。
可以关注我,点赞我、评论我、收藏我啦。

这篇关于《Jenkins从零到壹》Jenkins集成gitlab自动化构建(JAVA 小虚竹 建议收藏)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/466486

相关文章

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

Java Optional避免空指针异常的实现

《JavaOptional避免空指针异常的实现》空指针异常一直是困扰开发者的常见问题之一,本文主要介绍了JavaOptional避免空指针异常的实现,帮助开发者编写更健壮、可读性更高的代码,减少因... 目录一、Optional 概述二、Optional 的创建三、Optional 的常用方法四、Optio

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

Java Predicate接口定义详解

《JavaPredicate接口定义详解》Predicate是Java中的一个函数式接口,它代表一个判断逻辑,接收一个输入参数,返回一个布尔值,:本文主要介绍JavaPredicate接口的定义... 目录Java Predicate接口Java lamda表达式 Predicate<T>、BiFuncti

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Spring Security方法级安全控制@PreAuthorize注解的灵活运用小结

《SpringSecurity方法级安全控制@PreAuthorize注解的灵活运用小结》本文将带着大家讲解@PreAuthorize注解的核心原理、SpEL表达式机制,并通过的示例代码演示如... 目录1. 前言2. @PreAuthorize 注解简介3. @PreAuthorize 核心原理解析拦截与