How can I access the last built revision according to jenkins?

后端 未结 5 1290
一整个雨季
一整个雨季 2021-02-06 05:50

Near the top of my build console I see a \"Last Built Revision:\" w/ a revision #. How can I access this last built rev # in my build script? I\'m using Gradle, but I don\'t t

相关标签:
5条回答
  • 2021-02-06 06:10

    I do not think the git plugin exports the last built revision as an environment variable, but the information is easily available using a simple shell command like:

    curl -sf "$BUILD_URL/api/xml?xpath=//lastBuiltRevision/SHA1/text()"
    

    BUILD_URL always points to the build's own page and the rest of the information seems to be available using the xml api.

    0 讨论(0)
  • 2021-02-06 06:20

    You can directly access the Jenkins BUILD_NUMBER as system environment variable.

    task getBuildNumber << {
        ext.env = System.getenv()
        ext.buildNumber = env.BUILD_NUMBER?.toInteger()
        println "Build Number: $buildNumber"
    }
    
    0 讨论(0)
  • 2021-02-06 06:20

    Turns out, the Git plugin DOES export the last build revision as an environment variable. So instead of using the accepted answer:

    curl -sf "$BUILD_URL/api/xml?xpath=//lastBuiltRevision/SHA1/text()"
    

    you can just use this instead:

    GIT_PREVIOUS_COMMIT
    

    One failproof way to see exactly what's available to your build script is to choose Add Build Step > Execute Shell then simply add the following:

    export
    

    view your console (for the build) and you should see lots of great environment variables available to you. The git-related variables that were available to me (using the git plugin) were:

    GIT_AUTHOR_EMAIL
    GIT_AUTHOR_NAME
    GIT_BRANCH
    GIT_COMMIT
    GIT_COMMITTER_EMAIL
    GIT_COMMITTER_NAME
    GIT_PREVIOUS_COMMIT
    GIT_URL
    

    Lastly, to see a less comprehensive list of available environment variables, you can also just go to this url: http://[your-jenkins-domain-and-port]/env-vars.html

    0 讨论(0)
  • 2021-02-06 06:20

    The Git plugin returns information from the checkout() command. In Pipeline script, this can be used to get the previous commit:

    def scmVars = checkout scm
    
    scmVars.GIT_PREVIOUS_COMMIT
    
    0 讨论(0)
  • 2021-02-06 06:23

    The current build-number is provided as the Jenkins-variable BUILD_NUMBER

    • In Unix it is set for you as ${BUILD_NUMBER}
    • In Windows it is available as %BUILD_NUMBER%

    The complete list of variables is available on your Jenkins server, at:
    http://[your-jenkins-server]/env-vars.html

    0 讨论(0)
提交回复
热议问题