return $this->client->send($request)->json(); } public function uploadAsset($id, $name, $contents, $contentType) { $request = $this->client->createRequest('POST', sprintf("https://api.github.com/repos/%s/%s/releases/%s/assets?name=%s", $this->owner, $this->repo, $id, $name), array('Content-Type' => $contentType), $contents); return $this->client->send($request)->json(); } } $owner = 'aws'; $repo = 'aws-sdk-php'; $returnVal = shell_exec('which chag') or die('chag not found in path'); $token = getenv('OAUTH_TOKEN') or die('OAUTH_TOKEN environment var not found!'); $artifacts = realpath(__DIR__ . '/artifacts') or die('artifacts dir not found'); $stageDir = realpath($artifacts . '/staging') or die('stage dir not found'); $zip = realpath($artifacts . '/aws.zip') or die('zip not found'); $phar = realpath($artifacts . '/aws.phar') or die('phar not found'); // Get the latest changelog entry chdir($stageDir); $tag = Release::exec('chag get'); $contents = Release::exec('chag contents'); echo "Found tag: {$tag}\n\n{$contents}\n\n"; $release = new Release($token, $owner, $repo); $res = $release->createRelease($tag, $contents, 'master', true); echo "Created release: {$res['id']}\n"; // Upload the phar $upload = $release->uploadAsset($res['id'], 'aws.phar', file_get_contents($phar), 'application/octet-stream'); echo "Uploaded asset: {$upload['browser_download_url']}\n"; // Upload the zip $upload = $release->uploadAsset($res['id'], 'aws.zip', file_get_contents($zip), 'application/zip'); echo "Uploaded asset: {$upload['browser_download_url']}\n\n"; echo "Successfully create GitHub release\n";
// Build pre // --------------------------------------------------------------------------------------------------------------------- if (Project::haveName() && Project::havePreEnv()) { $commands = array('ssh ' . Project::name() . '@' . Project::name() . '.pre.brzy.cz'); Release::display($commands); if ($prev && ($prev = Release::confirm())) { Release::exec($commands); } echo PHP_EOL . 'Check tests results:' . PHP_EOL . ' http://' . Project::name() . '.pre.brzy.cz:8088/logviewer/index.php?lines=200&tail=1&action=show&log=%2Fvar%2Fwww%2F' . Project::name() . '%2Flogs%2Fdeploy%2Ftests.log' . PHP_EOL; } else { $prev = true; } // --------------------------------------------------------------------------------------------------------------------- // Push new tag to server // --------------------------------------------------------------------------------------------------------------------- $commands = array('git tag ' . $tag . ' ' . $commit, 'git push origin ' . $tag); Release::display($commands); if ($prev && ($prev = Release::confirm())) { Release::exec($commands); } // --------------------------------------------------------------------------------------------------------------------- // Run tests // --------------------------------------------------------------------------------------------------------------------- if (Project::haveStableEnv() && Project::haveTestbuilder()) { $commands = array('ant tawc -Denvironment.name=stable'); Release::display($commands); if ($prev && Release::confirm()) { Release::exec($commands); } } echo '└' . str_repeat('─', 78) . '┘' . PHP_EOL;