Summary: After this diff, when a user submits a diff from Facebook's VPN network, we'll automatically trigger a jenkins test. Once jenkins test is done, we'll update the diff with test results. Test Plan: Made sure that jenkins build is triggered on `arc diff` and that result is reflected back on the diff Reviewers: sdong, rven, kradhakrishnan, anthony, yhchiang Reviewed By: anthony Subscribers: dhruba Differential Revision: https://reviews.facebook.net/D36555main
parent
f12614070f
commit
de22c7bd1f
@ -0,0 +1,3 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
phutil_register_library('arcanist_util', __FILE__); |
@ -0,0 +1,32 @@ |
|||||||
|
<?php |
||||||
|
// Copyright 2004-present Facebook. All Rights Reserved. |
||||||
|
|
||||||
|
class FacebookArcanistConfiguration extends ArcanistConfiguration { |
||||||
|
|
||||||
|
public function didRunWorkflow($command, |
||||||
|
ArcanistBaseWorkflow $workflow, |
||||||
|
$error_code) { |
||||||
|
if ($command == 'diff' && !$workflow->isRawDiffSource()) { |
||||||
|
$this->maybePushToJenkins($workflow); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////// |
||||||
|
/* Send off builds to jenkins */ |
||||||
|
function maybePushToJenkins($workflow) { |
||||||
|
$diffID = $workflow->getDiffID(); |
||||||
|
if ($diffID === null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$results = $workflow->getTestResults(); |
||||||
|
if (!$results) { |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$url = "https://ci-builds.fb.com/view/rocksdb/job/rocksdb_diff_check/" |
||||||
|
."buildWithParameters?token=AUTH&DIFF_ID=$diffID"; |
||||||
|
system("curl --noproxy '*' \"$url\" > /dev/null 2>&1"); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
<?php |
||||||
|
// Copyright 2004-present Facebook. All Rights Reserved. |
||||||
|
|
||||||
|
class FacebookFbcodeUnitTestEngine extends ArcanistBaseUnitTestEngine { |
||||||
|
|
||||||
|
public function run() { |
||||||
|
// Here we create a new unit test "jenkins_async_test" and promise we'll |
||||||
|
// update the results later. |
||||||
|
// Jenkins updates the results using `arc call-conduit |
||||||
|
// differential.updateunitresults` call. If you change the name here, also |
||||||
|
// make sure to change the name in Jenkins script that updates the test |
||||||
|
// result -- they have to be the same. |
||||||
|
$result = new ArcanistUnitTestResult(); |
||||||
|
$result->setName("jenkins_async_test"); |
||||||
|
$result->setResult(ArcanistUnitTestResult::RESULT_POSTPONED); |
||||||
|
return array($result); |
||||||
|
} |
||||||
|
} |
@ -1,19 +0,0 @@ |
|||||||
#!/bin/bash |
|
||||||
# usage: |
|
||||||
# * trigger_jenkins_test.sh -- without parameters, submits the current patch to Jenkins for testing |
|
||||||
# * trigger_jenkins_test.sh D12345 -- submits diff D12345 |
|
||||||
if [[ $# == 0 ]]; then |
|
||||||
diff=$(git log -1 --pretty=%b | perl -nle \ |
|
||||||
'm!^Differential Revision: https://reviews\.facebook\.net/(D\d+)$! and print $1') |
|
||||||
else |
|
||||||
diff=$1 |
|
||||||
fi |
|
||||||
|
|
||||||
diff_len=`expr length "$diff"` |
|
||||||
if [[ $diff_len < 6 ]] ; then |
|
||||||
echo "I don't think your diff ID ($diff) is correct" |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
|
|
||||||
echo "Submitting build of diff $diff to Jenkins" |
|
||||||
curl "https://ci-builds.fb.com/view/rocksdb/job/rocksdb_diff_check/buildWithParameters?token=AUTH&DIFF=$diff" |
|
@ -1,3 +0,0 @@ |
|||||||
<?php |
|
||||||
|
|
||||||
phutil_register_library('linters', __FILE__); |
|
Loading…
Reference in new issue