首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins管道-只在分支匹配时输入

Jenkins管道-只在分支匹配时输入
EN

DevOps用户
提问于 2018-04-24 20:27:06
回答 2查看 12.9K关注 0票数 8

我想征求意见,但前提是我们在某个分支上。但是,输入将在何时之前运行。这能用声明式语法来完成吗?

例如,即使分支不是主程序,这也会始终提示。

代码语言:javascript
复制
stage('only on master') {
   when {
      branch 'master'
   }
   input { ... }
}
EN

回答 2

DevOps用户

回答已采纳

发布于 2018-04-24 21:03:28

我看到两种方法:

将当前分支名称保存在变量上,并在if语句

中检查它

代码语言:javascript
复制
CURRENT_BRANCH = '...' // some value or parameter

stage('only on master') {
  if (CURRENT_BRANCH == 'master') {
  input {
    ...
  }
}

// be sure to check if input was set or define a default value

运行一个shell脚本,以了解当前文件夹是否是主

上的git

下面的命令检查当前文件夹是否是git存储库,打印"true“(如果没有repo,则返回错误)

代码语言:javascript
复制
git rev-parse --is-inside-work-tree

接下来,打印当前的分支名称。

代码语言:javascript
复制
git branch | grep \* | cut -d ' ' -f2

使用这两种方法创建一个设置环境变量的脚本。检查管道上的值,以显示输入

代码语言:javascript
复制
stage('only on master') {

  // Set true on IS_ON_MASTER if current branch is master, 
  // otherwise set false

  sh ./check-branch-master.sh 

  if (env.IS_ON_MASTER) {
  input {
    ...
  }
}
票数 4
EN

DevOps用户

发布于 2021-10-07 11:35:51

或者您可以使用beforeInput标志

代码语言:javascript
复制
stage('Example Deploy') {
        when {
            beforeInput true
            branch 'production'
        }
        input {
            message "Deploy to production?"
            id "simple-input"
        }
        steps {
            echo 'Deploying'
        }
    }

詹金斯管道

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

https://devops.stackexchange.com/questions/3951

复制
相关文章

相似问题

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