首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins /如何一键部署

Jenkins /如何一键部署
EN

Stack Overflow用户
提问于 2020-01-20 18:11:50
回答 3查看 1.5K关注 0票数 1

我正在与git和jenkins (流水线)合作一个项目。

我希望在每次提交时构建项目,但只在负责人需要时部署它。

因此,我希望有两条管道,一条在每次提交时运行,并且只进行构建/测试,另一条可以通过单击标签为"click me to deploy“的按钮来运行。

我是否必须创建2个jenkins作业,或者有一个插件或一种方法来做到这一点与1个作业。

我已经找过了,但我什么也没找到。

EN

回答 3

Stack Overflow用户

发布于 2020-01-20 19:39:51

您可以使用Input Step (Pipeline)实现1个作业。作为管道的一部分,在构建和测试执行之后,添加输入步骤(等待交互输入),然后添加与部署相关的阶段。

因此,对于每次签入,Jenkins build都会触发。但它将只完成构建和测试阶段,之后将等待首席批准进行部署。

参考:https://jenkins.io/doc/pipeline/steps/pipeline-input-step

票数 0
EN

Stack Overflow用户

发布于 2020-01-21 18:17:07

这是一个关于如何构建管道的示例,该管道在输入为yes时进行构建、等待输入和部署。如果输入超时,则作业将退出。如果不需要超时,那么可以忽略它,流水线将无限期地等待,而不消耗执行器(注意顶部流水线和每个阶段中的代理注释)。

代码语言:javascript
复制
pipeline {
  agent none

stages {
stage('Build') {
  agent { label 'master' }
  steps {
    sh 'build  something'
  }
}


stage('Production deploy confirmation') {
    options {
      timeout(time: 60, unit: 'SECONDS')
    }
    input {
        message "Deploy to production?"
        ok "Yes"
    }
    steps {
      echo 'Confirmed production deploy'
    }
}


stage('Deploy Production') {

    stage('internal') {
      agent { label 'master' }
      steps {
        sh 'deploy something'
      }
    }
  }
 }
}
票数 0
EN

Stack Overflow用户

发布于 2020-01-20 19:44:36

尝试使用带布尔参数的参数化作业和用于构建和部署的两个独立阶段

代码语言:javascript
复制
pipeline{
    parameters {            
        booleanParam(name: 'deploy_param', defaultValue: false, description: 'Check if want to deploy')     
    }
    stages{
        stage("Build"){
            steps{
                // build steps
            }
        }    
        stage("Deploy"){
            when {
                environment name: 'deploy_param', value: 'true'
            }
            steps{
                // deploy steps
            }
        }
    }
}

通过这种方式,yo可以在"Deploy“阶段关闭的情况下进行CI构建,因为默认情况下deploy_param被设置为false 。还有一个手动构建(“当首席执行官需要时”),通过手动将deploy_param设置为true来打开"Deploy“阶段。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59821036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档