八戒你干嘛 发表于 2017-6-22 14:59:15

Jenkins 2.7 pipeline 功能使用介绍

安装现在的jenkins版本+pipeline插件
pipeline这是jenkins2.0的核心特性. 也是最适合持续交付的feature.
与以往的通过Web交互来配置流程不同, Jenkins也走向了正规的工程化交付方式即使用配置文件. 这本身也印证了行业的经验everything is code
这样就再也不用每个项目都手工配置或者搞各种恶心的项目模板了.
jenkins的pipeline主要是通过一个配置文件或者job里面的pipeline配置来设定每个job的步骤.
pipeline定义了几乎所有要用到的流程, 比如执行shell, 存档, 生成测试报告, 发布报告等.
https://testerhome.com/photo/2016/eb329f2d3f8a83eddfb8e5f4dcdfa4bc.png
持续交付 as codehttps://jenkins.io/doc/book/pipeline-as-code/
node(‘linux’){
git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
def mvnHome = tool 'M3'
env.PATH = "${mvnHome}/bin:${env.PATH}"
sh 'mvn -B clean verify'
}

举一个sonar的例子

node {
    stage "auth"
    sshagent(['xxxx-xxxx-xxx-xxxx-xxxx']){
       stage 'Checkout'
       git url: 'git@git.tonghuashun.com:tonghuashun/tonghuashun-income.git'
    }
   stage 'Build'
   sh "mvn clean install -Dmaven.test.skip=true"
   stage "Sonar"
   sh "mvn sonar:sonar"

}

https://testerhome.com/photo/2016/bbd198e33fa3728d785d888467a969d7.png
建议是在每个项目里面让研发放一个Jenkinsfile, jenkins的其他插件可以自动读取这些配置批量导入已有的项目.
pipeline-syntax这是一个Jenkinsfile的命令查询工具. 辅助新手编写持续交付的配置指令. 非常好用.

https://testerhome.com/photo/2016/a390b31d46b522705d2fb2131f9ad04b.png
分析测试结果node {
   git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git'
   def mvnHome = tool 'M3'
   sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
   step([$class: 'ArtifactArchiver', artifacts: '**/target/*.jar', fingerprint: true])
   step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
}


悠悠小仙仙 发表于 2017-6-22 15:07:07

这是一个和web配置并行的配置方式?相较于web上配置有什么优势呢

八戒你干嘛 发表于 2017-6-22 15:08:07

悠悠小仙仙 发表于 2017-6-22 15:07
这是一个和web配置并行的配置方式?相较于web上配置有什么优势呢

如果类比的话, 可以理解为 是从 Maven -> Gradle的改进. Jenkinsfile本身是个groovy脚本. 跟gradle很像. 这样就可以做便捷的做各种判断和循环处理了. 有了统一的Jenkinsfile以后批量的导入项目到Jenkins也方便了.

51IT测试 发表于 2019-1-7 15:37:42

Jenkins Pipeline可以发布C#中的DEbug版本的代码么、
页: [1]
查看完整版本: Jenkins 2.7 pipeline 功能使用介绍