1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-27 17:22:42 +01:00
phorge-phorge/resources/sql/patches/20131205.buildstepordermig.php
James Rhodes 79d153b85d Implement explicit build step ordering in Harbormaster
Summary: This implements support for explicitly marking the sequence of build steps.  Users can now drag and re-order build steps in plans, and artifact dependencies are re-calculated so that if you move "Run Command" before "Lease Host", the "Run Command" step has it's artifact setting cleared and thus the step becomes invalid.

Test Plan: Re-ordered build steps and observed dependencies being correctly recalculated.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley

CC: Korvin, epriestley, aran

Maniphest Tasks: T1049

Differential Revision: https://secure.phabricator.com/D7715
2013-12-06 14:12:15 +11:00

41 lines
1,009 B
PHP

<?php
$table = new HarbormasterBuildPlan();
$conn_w = $table->establishConnection('w');
$viewer = PhabricatorUser::getOmnipotentUser();
// Since HarbormasterBuildStepQuery has been updated to handle the
// correct order, we can't use the built in database access.
foreach (new LiskMigrationIterator($table) as $plan) {
$planname = $plan->getName();
echo "Migrating steps in {$planname}...\n";
$rows = queryfx_all(
$conn_w,
"SELECT id, sequence FROM harbormaster_buildstep ".
"WHERE buildPlanPHID = %s ".
"ORDER BY id ASC",
$plan->getPHID());
$sequence = 1;
foreach ($rows as $row) {
$id = $row['id'];
$existing = $row['sequence'];
if ($existing != 0) {
echo " - {$id} (already migrated)...\n";
continue;
}
echo " - {$id} to position {$sequence}...\n";
queryfx(
$conn_w,
"UPDATE harbormaster_buildstep ".
"SET sequence = %d ".
"WHERE id = %d",
$sequence,
$id);
$sequence++;
}
}
echo "Done.\n";