/** Add a new build */ function add_build($build, $clientscheduleid = 0) { require_once 'models/buildgroup.php'; if (!is_numeric($build->ProjectId) || !is_numeric($build->SiteId)) { return; } //add_log('subprojectname: '.$build->SubProjectName, 'add_build'); $buildid = $build->GetIdFromName($build->SubProjectName); if ($buildid > 0 && !$build->Append) { remove_build($buildid); } // Move this into a Build::SetAppend($append, $buildid) method: // if (!$build->Exists() && $build->Append && empty($build->Id)) { $build->Id = $buildid; } // Find the groupid $buildGroup = new BuildGroup(); $build->GroupId = $buildGroup->GetGroupIdFromRule($build); $build->Save(); // If the build is part of a subproject we link the update file if (isset($build->SubProjectName) && $build->SubProjectName != '') { require_once 'models/buildupdate.php'; $BuildUpdate = new BuildUpdate(); $BuildUpdate->BuildId = $build->Id; $BuildUpdate->AssociateBuild($build->SiteId, $build->Name, $build->GetStamp()); } if ($clientscheduleid != 0) { require_once 'models/clientjobschedule.php'; $ClientJobSchedule = new ClientJobSchedule(); $ClientJobSchedule->Id = $clientscheduleid; $ClientJobSchedule->AssociateBuild($build->Id); } return $build->Id; }