// Copy files from prod to the configured environment. update_console('Copying files from prod to ' . $environment . '.'); $cloudapi->copyFiles($site, 'prod', $environment); } if ($copy_database) { // Copy database from prod to the configured environment (wait for completion). update_console('Copying database from prod to ' . $environment . '...'); $database = $cloudapi->copyDatabase($site, $database, 'prod', $environment); if (wait_for_task_to_complete($cloudapi, $site, $database->id())) { update_console('...complete!'); } } // Deploy tag to the environment. update_console('Deploying tag ' . $tag . ' to ' . $environment . '...'); $code = $cloudapi->pushCode($site, $environment, $tag); if (wait_for_task_to_complete($cloudapi, $site, $code->id())) { update_console('...complete!'); } // Congratulations, it's all over! update_console('Deployment complete!'); /** * Pause until a given task is completed. * * @param int $id * The task ID. * * @todo - This currently will loop infinitely if you pass an invalid task id. * Consider fixing that ;-) */ function wait_for_task_to_complete($cloudapi, $site, $id = 0) {
* */ require_once 'vendor/autoload.php'; // Buffer output. ob_start(); use Acquia\Cloud\Api\CloudApiClient; // Build Cloud API client connection. $cloudapi = CloudApiClient::factory(array('username' => getenv('ACQUIA_CLOUD_USERNAME'), 'password' => getenv('ACQUIA_CLOUD_PASSWORD'))); // Set up other required variables. $environment = getenv('ACQUIA_CLOUD_ENVIRONMENT'); $site = getenv('ACQUIA_CLOUD_SITENAME'); $destination = getenv('ACQUIA_CLOUD_DATABASE_DESTINATION'); // Create a database backup (wait for completion). update_console('Backing up database in ' . $environment . ' environment...'); $backup = $cloudapi->createDatabaseBackup('devcloud:' . $site, $environment, $site); if (wait_for_task_to_complete($cloudapi, 'devcloud:' . $site, $backup->id())) { update_console('...complete!'); $result = json_decode($cloudapi->task('devcloud:' . $site, $backup->id())->result()); $bid = $result->backupid; } $download = $cloudapi->downloadDatabaseBackup('devcloud:' . $site, $environment, $site, $bid, $destination . 'ac-dump.sql.gz'); /** * Pause until a given task is completed. * * @param int $id * The task ID. * * @todo - This currently will loop infinitely if you pass an invalid task id. * Consider fixing that ;-) */ function wait_for_task_to_complete($cloudapi, $site, $id = 0)