<?php /** * * CRONJOB * deploy all queued packages * */ // http://iml:deployment@ci.iml.unibe.ch/deployment/?prj=ci&action=deploy&par3=preview&confirm=1 $sDocroot = (dirname(__dir__)) . "/public_html"; $processUser = posix_getpwuid(posix_geteuid()); if ($processUser['name']=="root"){ die("Do not start the script as user root\n"); }; require_once("$sDocroot/deployment/classes/logger.class.php"); global $oCLog; $oCLog = new logger(); require_once("$sDocroot/../config/inc_projects_config.php"); require_once("$sDocroot/deployment/inc_functions.php"); require_once("$sDocroot/deployment/classes/project.class.php"); $aSkipped=array(); $aUntouched=array(); // ---------------------------------------------------------------------- // FUNCTIONS // ---------------------------------------------------------------------- function getUrl($s){ return 'https://ci.iml.unibe.ch/deployment/'.$s.'/setup/'; } // ---------------------------------------------------------------------- // MAIN // ---------------------------------------------------------------------- echo "\n"; echo "===== IMLDEPLOYMENT - converter for rollout plugins\n"; echo "\n"; $oPrj1 = new project(); foreach ($oPrj1->getProjects() as $sPrj) { $oPrj = new project($sPrj); echo "----- $sPrj:\n"; $aCfg=$oPrj->getConfig(); // NEXT STEPS: // test if a pluin was set already... if(isset($aCfg['deploy']['enabled_rollout_plugin'])){ echo "SKIP: Project uses rollout plugin [".$aCfg['deploy']['enabled_rollout_plugin']."]\n"; } else { echo "INFO: No rollout plugin is set - Project needs to be converted...\n"; $bSave=false; if (preg_match('/_se$/', $aCfg['label'])){ echo "UNTOUCHED: project ending with _se\n"; $aUntouched[]=$sPrj.' - SE project - '.getUrl($sPrj); /* if ($aCfg['deploy']['enabled_rollout_plugin']){ $bSave=false; echo " CONFLICT: rollout plugin was set to [".$aCfg['deploy']['enabled_rollout_plugin']."]\n"; echo " \n"; } * */ } else { foreach (array_keys($aCfg['phases']) as $sPhase){ echo "--- phase $sPhase \n"; if ($aCfg['phases'][$sPhase]['hosts']){ $bSave=true; echo " TASK: target hosts detected: phases -> $sPhase -> hosts = " . $aCfg['phases'][$sPhase]['hosts'] . "\n"; echo " - set plugin [ssh] for rollout\n"; $aCfg['deploy']['enabled_rollout_plugin']='ssh'; echo " - set hosts for ssh plugin phases -> $sPhase -> plugins -> rollout -> ssh -> hosts = ".$aCfg['phases'][$sPhase]['hosts']."\n"; $aCfg['phases'][$sPhase]['plugins']['rollout']['ssh']['hosts']=$aCfg['phases'][$sPhase]['hosts']; } } if(!$bSave){ echo "UNTOUCHED: No Deploy host was found.\n"; $aUntouched[]=$sPrj.' - no deploy host in any phase - '.getUrl($sPrj); } } if($bSave){ echo "INFO: save new config\n"; $aCfg['id']=$sPrj; if ($oPrj->saveConfig($aCfg)) { echo " OK, config was saved \n"; } else { echo " ERROR: config was NOT saved :-/ \n"; die(" Aborting\n\n"); } } else { echo "SKIP: do NOT saving config.\n"; $aSkipped[]=$sPrj; } } echo "\n"; } echo "----------------------------------------------------------------------\n"; echo "processed: ".count($oPrj1->getProjects())."\n"; echo "skipped : ".count($aSkipped)."\n"; echo "untouched: ".count($aUntouched)." (watch them manually):\n"; print_r($aUntouched); echo "done\n";