Declarative pipeline "when" tag is pushed

1,561 views
Skip to first unread message

Lynn Lin

unread,
Dec 20, 2017, 2:12:44 AM12/20/17
to Jenkins Users
HI ,All,

 i followed with page https://wiki.jenkins.io/display/JENKINS/GitHub+Branch+Source+Plugin to enable tag will trigger a new build then the questions comes 

How can I use "when" in declarative pipeline to do something like deployment when a new tag is pushed to remote repository


stage('Example Deploy') {
            when {
                branch 'production' // here how we can use tag as condition 
            }
            steps {
                echo 'Deploying'
            }
        }



"
  • When used with the Branch API Plugin, tags will show up as a new category. The default configuration of Branch API will not trigger builds for tags automatically. 

    This is by design, as one of the use-cases for tag discovery is to use the tag job to perform deployment. If tags were built automatically, given that the order in which the tag jobs actually execute is undefined, the automatic build could cause significant issues. Branch API does provide a mechanism to control what gets built automatically (known as the BranchBuildStrategy) but that cannot be configured until you have at least one extension plugin that provides a BranchBuildStrategy

    If you want tags to build automatically, you will need an extension plugin for Branch API that implements at least one BranchBuildStrategy, see AngryBytes/jenkins-build-everything-strategy-plugin for a prototype example of such an extension plugin.


Thanks
Lynn

Steven Foster

unread,
Dec 20, 2017, 8:53:44 PM12/20/17
to Jenkins Users
I think you can get that with this:

when {
    expression
{
        env
.
TAG_NAME != null
   
}

}

You get the env.TAG_NAME from the branch api when it's a tag build.
A shortcut would be helpful, I suggested it here https://issues.jenkins-ci.org/browse/JENKINS-48523

Lynn Lin

unread,
Jan 3, 2018, 8:56:11 AM1/3/18
to jenkins...@googlegroups.com

Steven Foster <steven...@gmail.com>于2017年12月21日 周四上午9:54写道:
I think you can get that with this:

when {
    expression
{
        env
.
TAG_NAME != null
   
}

}


Thanks,it works

You get the env.TAG_NAME from the branch api when it's a tag build.
A shortcut would be helpful, I suggested it here https://issues.jenkins-ci.org/browse/JENKINS-48523
This is even great 

On Wednesday, December 20, 2017 at 7:12:44 AM UTC, Lynn Lin wrote:
HI ,All,

 i followed with page https://wiki.jenkins.io/display/JENKINS/GitHub+Branch+Source+Plugin to enable tag will trigger a new build then the questions comes 

How can I use "when" in declarative pipeline to do something like deployment when a new tag is pushed to remote repository


stage('Example Deploy') {
            when {
                branch 'production' // here how we can use tag as condition 
            }
            steps {
                echo 'Deploying'
            }
        }



"
  • When used with the Branch API Plugin, tags will show up as a new category. The default configuration of Branch API will not trigger builds for tags automatically. 

    This is by design, as one of the use-cases for tag discovery is to use the tag job to perform deployment. If tags were built automatically, given that the order in which the tag jobs actually execute is undefined, the automatic build could cause significant issues. Branch API does provide a mechanism to control what gets built automatically (known as the BranchBuildStrategy) but that cannot be configured until you have at least one extension plugin that provides a BranchBuildStrategy

    If you want tags to build automatically, you will need an extension plugin for Branch API that implements at least one BranchBuildStrategy, see AngryBytes/jenkins-build-everything-strategy-plugin for a prototype example of such an extension plugin.


Thanks
Lynn

--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/D0jCrBe-7A0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/9db42595-b6ad-4496-bf3f-0cd2db6c6ae2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages