Пример #1
0
function deploy($bucket, $src, $dest, $count = 0)
{
    global $client;
    try {
        $client->putObjectFromFile($bucket, $src, $dest);
    } catch (Exception $e) {
        echo "Deloy Error " . $e->getMessage();
        // 重试两次
        if ($count < 2) {
            echo "Now retry...";
            sleep(2);
            deploy($bucket, $src, $dest, $count + 1);
        }
    }
}
Пример #2
0
function cliMain($argv)
{
    $argc = count($argv);
    if ($argc < 2) {
        die("Usage: zombie.php <action> <option=value> ...\n" . "Availabe actions:\n" . "\tcompile\n" . "\tcreate-app\n");
    }
    $action = $argv[1];
    $options = array();
    for ($i = 2; $i < $argc; ++$i) {
        $opt = explode("=", $argv[$i], 2);
        if (count($opt) == 2) {
            $options[$opt[0]] = $opt[1];
        } else {
            $options[$opt[0]] = true;
        }
    }
    if ($action == "generate-app") {
        if (!isset($options['app'])) {
            die("Usage: zombie.php generate-app app=<app name> [template=<template_name>] [option=<value>] ...\n");
        }
        $template = isset($options['template']) ? $options['template'] : 'basic';
        $base_dir = "/config/generator";
        $template_file = realpath(__DIR__ . "/../config/generator/" . $template) . "/template.php";
        if (!file_exists($template_file)) {
            $base_dir = "/zombie-core/generator/";
            $template_file = __DIR__ . "/generator/" . $template . "/template.php";
            if (!file_exists($template_file)) {
                die("unknown template: " . $template . "\n");
            }
        }
        $app = $options['app'];
        require_once __DIR__ . "/generator/ZombieTemplate.php";
        require $template_file;
        $template_class = underscoreToClass($template . "_template");
        $template = new $template_class($template, $app, $base_dir, $options);
        $template->run();
    } else {
        if ($action == "compile") {
            require __DIR__ . "/util/compile/compile.php";
            compile($options);
        } else {
            if ($action == "migrate") {
                require __DIR__ . "/util/migrate/migrate.php";
                migrate($options);
            } else {
                if ($action == "deploy") {
                    require __DIR__ . "/util/deploy.php";
                    deploy();
                } else {
                    if ($action == "install-package") {
                        if (!isset($options['name'])) {
                            die("Usage: zombie.php install-package name=<package name>\n");
                        }
                        require __DIR__ . "/packages/installer.php";
                        installPackage($options['name']);
                    } else {
                        if ($action == "kachow") {
                            echo "kachow!\n";
                        } else {
                            echo "Error: unknown action '" . $action . "'.\n";
                        }
                    }
                }
            }
        }
    }
}
Пример #3
0
//    fwrite($file, $execution_date);
//    fclose($file);
//}
$environment = isset($_GET['env']) ? $_GET['env'] : 'staging';
$pidroles = 'roles.pid';
$piddeploy = 'deploy.pid';
$log_file = 'log/deploy.log';
if (!isRunning($piddeploy) && !isRunning($pidroles)) {
    echo "executing\n";
    installRoles($log_file, $piddeploy);
    while (isRunning($pidroles)) {
        sleep(1);
        echo 'waiting';
        ob_flush();
    }
    deploy($environment, $log_file, $piddeploy);
} else {
    echo "already running";
}
function installRoles($logFile, $pidFile)
{
    $cmd = 'ansible-galaxy install -r /playbook/requirements.yml -p /roles &';
    exec(sprintf("%s > %s 2>&1 & echo \$! >> %s", $cmd, $logFile, $pidFile));
}
function deploy($environment, $logFile, $pidFile)
{
    $cmd = "ansible-playbook -i /playbook/{$environment} /playbook/deploy.yml &";
    exec(sprintf("%s > %s 2>&1 & echo \$! >> %s", $cmd, $logFile, $pidFile));
}
function isRunning($pidfile)
{
Пример #4
0
@extends('layout')

@section('content')
    <div class="panel panel-primary">
       <div class="panel-heading">
         Deploying {{ $repo->Name }} [{{ $repo->Branch }}]
       </div>
       <div class="panel-body">
           <?php 
deploy($repo, $url, $deployKey, $SSHKey);
?>
           <?php 
ob_end_flush();
?>
           <a href="/">Return to index</a>
       </div>
    </div>
@endsection