zoukankan      html  css  js  c++  java
  • jenkins2 Jenkinsfile和load

    更复杂的pipeline实例,使用了Jenkinsfile和load。

    文章来自:http://www.ciandcd.com
    文中的代码来自可以从github下载: https://github.com/ciandcd
     
    实例代码来自:https://github.com/jenkinsci/workflow-aggregator-plugin/tree/master/demo/repo
     
    1. groovy脚本
    https://github.com/jenkinsci/workflow-aggregator-plugin/blob/master/demo/repo/servers.groovy

    def deploy(id) {
    unstash 'war'
    sh "cp x.war /tmp/webapps/${id}.war"
    }

    def undeploy(id) {
    sh "rm /tmp/webapps/${id}.war"
    }

    def runWithServer(body) {
    def id = UUID.randomUUID().toString()
    deploy id
    try {
    body.call id
    } finally {
    undeploy id
    }
    }

    this

    2. Jenkinsfile

    https://github.com/jenkinsci/workflow-aggregator-plugin/blob/master/demo/repo/Jenkinsfile

    jettyUrl = 'http://localhost:8081/'

    def servers

    stage 'Dev'
    node {
    checkout scm
    servers = load 'servers.groovy'
    mvn '-o clean package'
    dir('target') {stash name: 'war', includes: 'x.war'}
    }

    stage 'QA'
    parallel(longerTests: {
    runTests(servers, 30)
    }, quickerTests: {
    runTests(servers, 20)
    })

    stage name: 'Staging', concurrency: 1
    node {
    servers.deploy 'staging'
    }

    input message: "Does ${jettyUrl}staging/ look good?"
    try {
    checkpoint('Before production')
    } catch (NoSuchMethodError _) {
    echo 'Checkpoint feature available in CloudBees Jenkins Enterprise.'
    }

    stage name: 'Production', concurrency: 1
    node {
    sh "wget -O - -S ${jettyUrl}staging/"
    echo 'Production server looks to be alive'
    servers.deploy 'production'
    echo "Deployed to ${jettyUrl}production/"
    }

    def mvn(args) {
    sh "${tool 'Maven 3.x'}/bin/mvn ${args}"
    }

    def runTests(servers, duration) {
    node {
    checkout scm
    servers.runWithServer {id ->
    mvn "-o -f sometests test -Durl=${jettyUrl}${id}/ -Dduration=${duration}"
    }
    }
    }

    3. 如果有兴趣可以下载pipeline demo docker image

    https://github.com/jenkinsci/workflow-aggregator-plugin/tree/master/demo

  • 相关阅读:
    Step one : 熟悉Unix/Linux Shell 常见命令行 (三)
    Step one : 熟悉Unix/Linux Shell 常见命令行 (一)
    PLAN: step one
    PLAN : 入门题目 ( update )
    SZU : A11 Sequence
    SZU:B85 Alec's Eggs
    codeforces 518B. Tanya and Postcard 解题报告
    BestCoder8 1001.Summary(hdu 4989) 解题报告
    hdu 1556.Color the ball 解题报告
    codeforces 515C. Drazil and Factorial 解题报告
  • 原文地址:https://www.cnblogs.com/itech/p/5660628.html
Copyright © 2011-2022 走看看