У него была одна из самых распространенных проблем: он работал с несколькими командами, поэтому ему приходилось разворачивать много разного кода на множестве серверов. Поскольку развертывание требует входа в систему, навигации к нужному каталогу и запуска обновлений, это может занимать много времени и быть disruptive.
Поэтому Шон придумал новое решение: *позвони на сервер, и он развернет код для тебя*.
Хотя с тех пор он разработал Версию 3 (используя Twilio Client!), я разговаривал с ним сразу после завершения Версии 2, поэтому именно ее мы и рассмотрим.
Прежде чем углубляться в код, самое интересное, что стоит отметить, это то, что это позволяет вам предоставить доступ к развертыванию, не предоставляя доступ к серверу. Теперь единственный раз, когда кому-то нужно войти в систему, это при первоначальной установке и при изменении авторизованных пользователей.
А теперь перейдем к коду:
[php]
header(«content-type: text/xml»);
echo «\n»;
$authorized_users = array(«+1NNNNNNNNNN»);
$production_files = «/home/production_sites/»;
$repository_location = «//var/svn/production_sites/»;
if(!in_array($_REQUEST[‘From’], $authorized_users))
{
echo («
} else {
// snip for some explanation
// Assuming $destination is set elsewhere, e.g., from Twilio’s parameters
$destination = $_REQUEST[‘Digits’]; // Example: if using Gather with Digits
switch($destination)
{
case ‘1’ : // Corresponds to ‘production_version’
?>
Checking the revision number of production
break;
case ‘2’ : // Corresponds to ‘production_update’
?>
break;
case ‘0’ : // Corresponds to ‘status’
?>
break;
default:
?>
echo «
echo «
echo «
echo ««;
switch($destination)
{
case ‘1’ : // Corresponds to ‘production_version’
?>
Checking the revision number of production
break;
case ‘2’ : // Corresponds to ‘production_update’
?>
break;
case ‘0’ : // Corresponds to ‘status’
?>
break;
default:
?>