当前位置: 首页 > news >正文

做网站广告网页外包网站

做网站广告网页,外包网站,网站目录权限设置 user,网页构成有哪几部分背景: 最近看流水线有点意思,就说自己也搞一套。 预期效果: idea提交代码后,GitHub接收,jenkins自动部署。【后续加个自动部署时的代码检查、单元测试、安全测试、sonarqube】 思路分析: idea上的spring代码push到gi…

背景:

        最近看流水线有点意思,就说自己也搞一套。

预期效果:

        idea提交代码后,GitHub接收,jenkins自动部署。【后续加个自动部署时的代码检查、单元测试、安全测试、sonarqube】

思路分析:

        idea上的spring代码push到github,github接到信号push事件,用钩子webhook转发到jenkins,jenkins利用设置好的钩子接收到代码,做后续的操作【比如代码审查、功能测试、安全测试、压力测试、自动部署服务器等等】。

步骤:

        1.开发spring程序。自处比较简单。

这里能调通测试接口就行。

值得注意的是,需要配置钩子接口【这里简单介绍下,钩子就是一个触发事件的工具,就像你用钩子把鱼勾过来,把衣服勾过来一样,把想要的东西用钩子拿过来,使你和事务联系起来】。接口是一个"webhook"的接口,后面配置github时会用到。

2.配置webhook接口:

        代码如下:

package com.consumer.controller;import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;@Slf4j
@RestController
@RequestMapping("/webhook")
public class WebHookController {private static final String SECRET = "12345"; // 在GitHub设置Webhook时填写的密钥private static final String HEADER_X_HUB_SIGNATURE_256 = "X-Hub-Signature-256";@PostMappingpublic ResponseEntity<String> receiveWebhook(@RequestHeader HttpHeaders headers,@RequestBody String payload) {log.info("come.");log.info("payload:{},headers:{}", payload, headers);// 验证签名boolean success = verifySignature(headers, payload);log.info("success:" + success);
//        if (!success) {
//            return new ResponseEntity<>("Invalid signature", HttpStatus.UNAUTHORIZED);
//        }log.info("payload" + payload);// 处理 Webhook 事件// 这里可以根据需要解析 payload 并执行相应的逻辑//....return new ResponseEntity<>("Webhook received", HttpStatus.OK);}private boolean verifySignature(HttpHeaders headers, String payload) {String headerValue = headers.getFirst(HEADER_X_HUB_SIGNATURE_256);log.info("headerValue:{}", headerValue);if (headerValue == null || !headerValue.startsWith("sha256=")) {return false;}String[] parts = headerValue.split("=", 2);if (parts.length != 2) {return false;}String signature = parts[1];log.info("signature:{}", signature);try {Mac mac = Mac.getInstance("HmacSHA256");SecretKeySpec keySpec = new SecretKeySpec(SECRET.getBytes(StandardCharsets.UTF_8), "HmacSHA256");mac.init(keySpec);byte[] hmacBytes = mac.doFinal(payload.getBytes(StandardCharsets.UTF_8));String calculatedSignature = "sha256=" + Base64.getEncoder().encodeToString(hmacBytes);log.info("calculatedSignature:{},headerValue:{}", calculatedSignature, headerValue);return calculatedSignature.equals(headerValue);} catch (Exception e) {log.error("Error verifying signature", e);return false;}}
}

上面屏蔽了验证,有个github配置钩子时信息的接收。

3.idea配置github:

我这里简单配置了一个git远程仓库地址。

不懂的大家可以去搜索下"idea 配置github",这个难度不高,就略过了。查完回来记得接着看。会的可以略过。

4.github配置钩子

        

蓝色箭头就是配置webhook的地方,在仓库代码的设置里。注意,这里不是github的设置,是仓库的设置。

详情:

URL:填写你的服务器地址,阿里云、腾讯云、华为云、自己的服务器等都可以,

【注意1:】必须是公网可以打开的,本地的localhost是不行的。我这里用的免费的ngrok,这里就不展开细讲了,大家可以百度下ngrok,是一个内网穿透的工具,也就是可以把localhost变https的地址。

类型:选application/json

这里配置完了github.

下面是一些注意事项【踩过坑的】:

【注意2:】

1).GitHub配置的地址里github-wook后面要加"/".不然会报400

2).github配置的地址里必须是8080端口。不然jenkins调不通

3).使用ngrok的话自己可以联调自己刚才写的githook接口是否是通的。方法是:配置好github的webhook后,自己在idea项目里commit->push,此时idea控制台会接收消息,接收到后idea会返回200给github,测试github会通的

如果idea设置别的返回代码如401等,对号不会显示。

5.配置jenkins

        Jenkins是一个自动部署的软件,可以部署程序等等。

在Jenkins里配置流水线:

1).下载jenkins 

进jenkins官网下载到本地,然后启动,默认8080端口。这里就是上面说的为啥github配置的地址必须是端口8080【学会了以后自己可以修改对应的,新人不建议】。

2). 启动jenkins后配置流水线

启动流水线后输入密码,这里jenkins会提示你密码文件的位置,一般在c盘,复制粘贴就可以。

登录后需要下载jenkins的插件,按系统提示的默认插件安装就行,包含常用的github、maven等插件。安装完之后就可以部署流水线了。

3). 建立流水线

登陆的用户名默认是admin,密码就是刚才说的c盘密码文件。我这里自定义了文件位置,

登录后的jenkins页面

点击"新建Item",然后进入详情页

我选的是这两个,确定后进入下一页

这里的25**@是我的github的密钥验证,也是账号密码或者密钥,大家可以在jenkins的设置里配置,也可以这里点击新建自动跳转设置。

这里的分支根据自己选,默认master,我github是dev,就加了一个。

jenkinsfile是本地的文件,

pipeline {
    agent any
    stages {
        stage('Hello') {
            steps {
                echo 'Hello, World!'
            }
        }
    }
}

这个文件是放在本地的,本地的位置需要配置在jenkins的"设置"->"工作空间"里.

[有报错可以看jenkins的报错日志]

这里的报错日志有2个地方可以看,一个是console_output

还有一个是hook_log

配置完之后就可以测试了。

6.测试:

idea里push代码分支,jenkins里会有日志

下拉

Done.

http://www.15wanjia.com/news/8445.html

相关文章:

  • 乌海市建设工程网站软件推广赚钱一个10元
  • 使用vue做的网站深圳网页设计公司
  • 博客网站模板逆冬黑帽seo培训
  • 佛山网站建设在哪福州百度推广开户
  • 菜鸟教程网站怎么做百度联盟广告点击一次收益
  • 全国加盟网站建设最有效的网络推广方式和策略
  • 网页制作公司 软件seo视频教学网站
  • 滨州北京网站建设价格低外贸网站如何推广优化
  • 网站专题教程广州网站优化服务
  • 网站支付模块百度统计手机app
  • 电话约建设网站 客户深圳高端seo公司助力企业
  • 郝友做的网站整站排名优化品牌
  • 政府网站建设 强化考评问责北京网站sem、seo
  • 邢台网站制作公司网推平台有哪些比较好
  • 上海网站建设v芯ee8888e渠道网络
  • 新余网站网站建设网站备案
  • 日新月异网站建设成都网站推广经理
  • no7wordpressseo 视频
  • 做室内设计的网站有哪些百度浏览器
  • 那些网站可以上传自己做的视频宁波seo快速优化课程
  • 网站建设规划书范文500字下载谷歌浏览器
  • 深圳的建站公司重庆网站关键词排名
  • 域名网站是什么seo算法是什么
  • wordpress迁移到githubseo的搜索排名影响因素主要有
  • 百度广州分公司是外包吗济南seo整站优化招商电话
  • 网站开发与制作中期报告哈尔滨seo推广优化
  • 天马网络网站深圳seo优化推广公司
  • 沈阳做网站客户多吗太原seo排名
  • wordpress 文章侧边栏优化方案
  • 小学学校网站建设方案湖南网站建设效果