Search code examples
jenkinsphabricator

Phabricator + Jenkins: Any ideas of how to get the whole workspace when executing an arc diff?


I'm using the plugin from Jenkins for the integration with Phabricator. Everything works perfectly during the integration, but when an arc diff is executed, the only files received on the Jenkins job is the files edited or created by the arc diff. This is a problem when creating microservices and editing files that could potentially affect to other microservices.

Any thoughts on how to get the whole workspace from the repository (hosted also in Phabricator) to be tested, instead of only the diff files?

I've created an issue on the plugin, here is the link:

https://github.com/uber/phabricator-jenkins-plugin/issues/334


Solution

  • Using git plugin and the repository URL, has been quite straightforward: added the URL of the staging area (in my case is the same as the repository) and git credentials (as username/password). The only trick is to indicate which tag we need to test. Since phabricator staging areas uses two tags per diff (phabricator/base/${DIFF_ID} with the base code of the diff and phabricator/diff/${DIFF_ID} with the whole code with the diff applied), i used the following setting:

    Build tag instead of branch

    As result, git plugin will build the code of the whole project with the diff applied.

    More information about the integration and the needed variables can be found here: https://github.com/uber/phabricator-jenkins-plugin