Jenkins: pass git commit hash to a downstream job

…衆ロ難τιáo~ 提交于 2020-07-18 05:31:25

问题


I have 2 jobs (A and B). Job A points to a git repo at URL-A. Job B points to a different git repo, at URL-B.

Once job A finishes and is stable, it should trigger job B and pass the git commit hash that was used in job A's build.

What is the simplest way to achieve that?

(Job B corresponds to a script checked out from URL-B that has 2 parameters: a git commit hash and a JAR artifact that will be wrapped in a Docker image and pushed to Docker hub)


回答1:


In Job B, check This project is parameterized. Define a String Parameter, set Name to COMMIT for example. In Job A, set Post-build Actions with Trigger parameterized build on other projects. Project to build is Job B's name, with Trigger when build is as Stable. Add Parameters with Predefined parameters, in which you just put COMMIT=$commit. $commit is usually a paramter defined in Job A. You could add other predefined parameters in Job B and pass a value to all or some of them in Job A.




回答2:


When you checking out from Job A using the GIT plugin you already have a $GIT_COMMIT parameter that the Plugin exports :

Environment variables

The git plugin sets several environment variables you can use in your scripts:

GIT_COMMIT - SHA of the current

GIT_BRANCH - Name of the remote repository (defaults to origin), followed by name of the branch currently being used, e.g. "origin/master" or "origin/foo"

etc.

Just make sure to pass this parameter to Job B explicitly (predefined parameters, parameter from file, etc).




回答3:


Easy way is to use Jenkins parameterized-trigger plugin by which you can trigger a build only on previous build is stable.

You can pass the parameters as well. Like In your case set the git commit hash to parameter and call the Job B.

Where Job B would receive that parameter and process further




回答4:


It seems that now (Parameterized trigger 2.37, Jenkins 2.204), "trigger parameterized build" has the option to "Pass-through Git Commit that was built". Working even without any special configuration in the downstream job.



来源:https://stackoverflow.com/questions/37438600/jenkins-pass-git-commit-hash-to-a-downstream-job

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!