jenkins常用构建触发器,SonarQube代码审查

jenkins常用构建触发器,SonarQube代码审查,第1张

jenkins常用构建触发器,SonarQube代码审查 Jenkins项目构建细节(1)-常用的构建触发

Jenkins内置4种构建触发器:
①触发远程构建
②其他工程构建后触发(Build after other projects are build)
③定时构建(Build periodically)
④轮询SCM(Poll SCM)

触发远程构建


触发构建url:http://192.168.66.101:8888/job/web_demo_pipeline/build?token=6666

其他工程构建后触发

1)配置需要触发的工程


2)构建前置工程后,当前项目也随之构建。

定时构建


定时字符串从左往右分别为: 分 时 日 月 周
一些定时表达式的例子:

每30分钟构建一次:H代表形参 H/30 * * * * 10:02 10:32
每2个小时构建一次: H H/2 * * *
每天的8点,12点,22点,一天构建3次: (多个时间点中间用逗号隔开) 0 8,12,22 * * *
每天中午12点定时构建一次 H 12 * * *
每天下午18点定时构建一次 H 18 * * *
在每个小时的前半个小时内的每10分钟 H(0-29)/10 * * * *
每两小时一次,每个工作日上午9点到下午5点(也许是上午10:38,下午12:38,下午2:38,下午
4:38) H H(9-16)/2 * * 1-5
轮询SCM

轮询SCM,是指定时扫描本地代码仓库的代码是否有变更,如果代码有变更就触发项目构建。

注意:这次构建触发器,Jenkins会定时扫描本地整个项目的代码,增大系统的开销,不建议使用。

Jenkins项目构建细节(2)-Git hook自动触发构建

刚才我们看到在Jenkins的内置构建触发器中,轮询SCM可以实现Gitlab代码更新,项目自动构建,但是
该方案的性能不佳。那有没有更好的方案呢? 有的。就是利用Gitlab的webhook实现代码push到仓
库,立即触发项目自动构建。

安装Gitlab Hook插件

需要安装两个插件:
Gitlab Hook和GitLab

Jenkins设置自动构建:

再把生成的webhook URL配置到Gitlab中。

Gitlab配置webhook

使用root账户登录到后台,点击Admin Area -> Settings -> Network
勾选"Allow requests to the local network from web hooks and services"

2)在项目添加webhook
点击项目->Settings->Integrations

以下设置必须完成,否则会报错!
Manage Jenkins->Configure System

测试成功

Jenkins项目构建细节(3)-Jenkins的参数化构建

有时在项目构建的过程中,我们需要根据用户的输入动态传入一些参数,从而影响整个构建结果,这时
我们可以使用参数化构建。
Jenkins支持非常丰富的参数类型


改动pipeline流水线代码

接下可以通过输入gitlab项目的分支名称来部署不同分支项目。

Jenkins+SonarQube代码审查 - 安装SonarQube

SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前
支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检
测。

官网:https://www.sonarqube.org/
环境要求

安装SonarQube

1)安装MySQL
2)安装SonarQube
在MySQL创建sonar数据库

下载sonar压缩包:

https://www.sonarqube.org/downloads/

解压sonar,并设置权限

unzip sonarqube-6.7.4.zip 解压
mkdir /opt/sonar 创建目录
mv sonarqube-6.7.4testtargettesttargetmaster']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '68f2087f-a034-4d39-a9ff-1f776dd3dfa8', url: 'git@192.168.66.100:itheima_group/web_demo.git']]]) 
          } 
       }
       stage('编译构建') { 
        steps { 
          sh label: '', script: 'mvn clean package' 
          } 
      }
      stage('SonarQube代码审查') { 
        steps{ 
          script { scannerHome = tool 'sonarqube-scanner' }withSonarQubeEnv('sonarqube6.7.4') { sh "${scannerHome}/bin/sonar-scanner" 
          } 
        } 
     }
     stage('项目部署') { 
       steps { deploy adapters: [tomcat8(credentialsId: 'afc43e5e-4a4e-4de6-984f- b1d5a254e434', path: '', url: 'http://192.168.66.102:8080')], contextPath: null, war: 'target/*.war' 
      } 
     } 
  }
  post { always { emailext( subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!', body: '${FILE,path="email.html"}', to: '@1074122847qq.com' 
     ) 
    } 
   }
  }

3)到SonarQube的UI界面查看审查结果

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5704075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存