Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Triggering Jenkins build on both new tags & commits

We are using the Git Plugin : https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

Currently, via webhooks we start a Jenkins build whenever a change is pushed to GitHub. Now we want to trigger the same build when a new tag is added. So we have two triggering conditions :

  1. A code change is pushed to GitHub
  2. A tag is created

If we try the fix mention in this thread then the builds start only for tags. jenkins trigger build if new tag is released

How can we do it for both scenarios ?

Question # 02 : How can we get the tag name inside a Jenkins build, is there any environment variable for it.

like image 381
Beenish Khan Avatar asked Nov 25 '16 16:11

Beenish Khan


1 Answers

4 Step Process:

  1. Commit Code : git commit -m "Some meaningful message"
  2. Create a tag
    • To release to stage : git tag -a release_stage_<meaningful tag>
    • To release to prod : git tag -a release_production_<meaningful tag>
  3. Push the tag : git push origin release_stage_<same_meaningful_tag>
  4. Push Commit git push origin <branch_name>

Jenkins File:

        properties([pipelineTriggers([[$class: 'GitHubPushTrigger']])])
        checkout scm
        git_branch = env.BRANCH_NAME
        git_branch_to_release = env.BRANCH_NAME
        git_tag = sh returnStdout: true, script: 'git tag -l --points-at HEAD'```

`//And now you can use to do anything with tags`

if(currentBuild.result=='SUCCESSFUL' || currentBuild.result=='SUCCESS' || currentBuild.result == null)
        {
            if (git_tag.contains('release_stage') || git_tag.contains('release_production'))
            {
            // Do anything which you want to do with tags
            }
}

like image 179
user2206324 Avatar answered Oct 18 '22 12:10

user2206324