Add HarbormasterRunnerWorker, for running CI tests
Summary: This is very preliminary and doesn't actually do anything useful. In theory, it uses Drydock to check out a working copy and run tests. In practice, it's not actually capable of running any of our tests (because of complicated interdependency stuff), but does check out a working copy and //try// to run tests there. Adds various sorts of utility methods to various things as well. Test Plan: Ran `reparse.php --harbormaster --trace <commit>`, observed attempt to run tests via Drydock. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T2015, T1049 Differential Revision: https://secure.phabricator.com/D4215
This commit is contained in:
@@ -55,6 +55,10 @@ $args->parse(
|
||||
'delete existing relationship entries between your '.
|
||||
'package and some old commits!)',
|
||||
),
|
||||
array(
|
||||
'name' => 'harbormaster',
|
||||
'help' => 'EXPERIMENTAL. Execute Harbormaster.',
|
||||
),
|
||||
// misc options
|
||||
array(
|
||||
'name' => 'force',
|
||||
@@ -73,6 +77,7 @@ $reparse_message = $args->getArg('message');
|
||||
$reparse_change = $args->getArg('change');
|
||||
$reparse_herald = $args->getArg('herald');
|
||||
$reparse_owners = $args->getArg('owners');
|
||||
$reparse_harbormaster = $args->getArg('harbormaster');
|
||||
$reparse_what = $args->getArg('revision');
|
||||
$force = $args->getArg('force');
|
||||
$force_local = $args->getArg('force-local');
|
||||
@@ -83,9 +88,9 @@ if (!$all_from_repo && !$reparse_what) {
|
||||
}
|
||||
|
||||
if (!$reparse_message && !$reparse_change && !$reparse_herald &&
|
||||
!$reparse_owners) {
|
||||
!$reparse_owners && !$reparse_harbormaster) {
|
||||
usage("Specify what information to reparse with --message, --change, ".
|
||||
"--herald, and/or --owners");
|
||||
"--herald, --harbormaster, and/or --owners");
|
||||
}
|
||||
if ($reparse_owners && !$force) {
|
||||
echo phutil_console_wrap(
|
||||
@@ -202,6 +207,10 @@ foreach ($commits as $commit) {
|
||||
$classes[] = 'PhabricatorRepositoryCommitOwnersWorker';
|
||||
}
|
||||
|
||||
if ($reparse_harbormaster) {
|
||||
$classes[] = 'HarbormasterRunnerWorker';
|
||||
}
|
||||
|
||||
$spec = array(
|
||||
'commitID' => $commit->getID(),
|
||||
'only' => true,
|
||||
@@ -218,7 +227,7 @@ foreach ($commits as $commit) {
|
||||
foreach ($classes as $class) {
|
||||
$worker = newv($class, array($spec));
|
||||
echo "Running '{$class}'...\n";
|
||||
$worker->doWork();
|
||||
$worker->executeTask();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user