Commit: ca0c12fd24def3a60b1a1552a960fc4e55ccc367 Author: Anatol Belski <[email protected]> Tue, 10 Sep 2013 13:04:02 +0200 Parents: 4c34bbdbfdec0e8af6e5f9b3f093d70c178cef37 Branches: master
Link: http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=ca0c12fd24def3a60b1a1552a960fc4e55ccc367 Log: upload basically works Changed paths: M client/include/PeclExt.php M client/include/Tools.php M client/script/pecl.php Diff: diff --git a/client/include/PeclExt.php b/client/include/PeclExt.php index 06df224..d24f86b 100644 --- a/client/include/PeclExt.php +++ b/client/include/PeclExt.php @@ -364,7 +364,7 @@ class PeclExt throw new \Exception("Unknown dynamic method called"); } - public function cleanup() + public function cleanup($flag0 = false) { if ($this->tmp_extract_path) { rmdir_rf(dirname($this->tmp_extract_path)); @@ -375,17 +375,15 @@ class PeclExt } - /* XXX don't do it yet as we don't mail yet and don't upload. - XXX also have to be sure it was mailed and uploaded first */ - /*$ext_pack = TMP_DIR . DIRECTORY_SEPARATOR . $this->getPackageName() . '.zip'; - if (file_exists($ext_pack) { + $ext_pack = TMP_DIR . DIRECTORY_SEPARATOR . $this->getPackageName() . '.zip'; + if ($flag0 && file_exists($ext_pack)) { unlink($ext_pack); } $log_pack = TMP_DIR . DIRECTORY_SEPARATOR . $this->getPackageName() . '-logs' . '.zip'; - if (file_exists($log_pack) { + if ($flag0 && file_exists($log_pack)) { unlink($log_pack); - }*/ + } } public function check() @@ -425,7 +423,7 @@ class PeclExt } - public function mailLogs(array $logs) + public function packLogs(array $logs) { foreach($logs as $k => $log) { if (!$log || !file_exists($log) || !is_file($log) || !is_readable($log)) { @@ -440,6 +438,12 @@ class PeclExt throw new \Exception("Couldn't zip logs for $zip_file, cmd was '$zip_cmd'"); } + return $zip_file; + } + + public function mailMaintainers(array $logs) + { + // $from is pecl@win // $to is ext lead from package.xml //xmail($from, $to, $subject, $text, $logs); diff --git a/client/include/Tools.php b/client/include/Tools.php index f3bbb53..ec3a5f1 100644 --- a/client/include/Tools.php +++ b/client/include/Tools.php @@ -370,7 +370,7 @@ function xmail($from, $to, $subject, $text, array $attachment = array()) return mail($to, $subject, implode("\r\n", $mail), implode("\r\n", $header)); } -function upload_pecl_pkg_ftp_curl($files, $target) +function upload_pecl_pkg_ftp_curl($files, $logs, $target) { include __DIR__ . '/../data/config/credentials_ftps.php'; @@ -379,14 +379,14 @@ function upload_pecl_pkg_ftp_curl($files, $target) echo "Cannot connect to $ftp_server\n"; return false; } - $login_result = ftp_login($ftp, $user_downloads, $password); + $login_result = ftp_login($ftp, $user_pecl, $password_pecl); if (!$login_result) { return false; } $try = 0; do { - $status = ftp_make_directory($ftp, $target); + $status = ftp_make_directory($ftp, $target . '/logs/'); $try++; } while ( $status === false && $try < 10 ); ftp_close($ftp); @@ -394,16 +394,16 @@ function upload_pecl_pkg_ftp_curl($files, $target) $curl = array(); $ftp_path = $target; - $ftp_user = $user_downloads; - $ftp_password = $password; + $ftp_user = $user_pecl; + $ftp_password = $password_pecl; if ($ftp_path[0] != '/') { $ftp_path = '/' . $ftp_path; } $mh = \curl_multi_init(); - //$files = glob($src_dir . '/*.{zip,json}', GLOB_BRACE); - $files = is_array($files) ? $u : array($files); + $files = is_array($files) ? $files : array($files); + $offset = 0; foreach ($files as $i => $local_file) { $curl[$i] = $ch = \curl_init(); @@ -419,10 +419,10 @@ function upload_pecl_pkg_ftp_curl($files, $target) \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' . $ftp_password); \curl_multi_add_handle ($mh, $ch); + $offset++; } - /*$files = glob($src_dir . '/logs/*.*'); - $offset = $i + 1; + $files = is_array($logs) ? $logs : array($logs); foreach ($files as $i => $local_file) { $ch = $curl[$offset + $i] = \curl_init(); @@ -438,7 +438,7 @@ function upload_pecl_pkg_ftp_curl($files, $target) \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' . $ftp_password); \curl_multi_add_handle ($mh, $ch); - }*/ + } $retry = 0; do { diff --git a/client/script/pecl.php b/client/script/pecl.php index e567eb2..868b6eb 100644 --- a/client/script/pecl.php +++ b/client/script/pecl.php @@ -50,13 +50,15 @@ if (!is_dir($build_dir_parent)) { $builds = $branch->getBuildList('windows'); /* be optimistic */ -$build_error = 0; +$was_errors = false; echo "Using <$ext_tgz>\n"; /* Each windows configuration from the ini for the given PHP version will be built */ foreach ($builds as $build_name) { + $build_error = 0; + echo "Preparing to build \n"; $build_src_path = realpath($build_dir_parent . DIRECTORY_SEPARATOR . $branch->config->getBuildSrcSubdir()); @@ -79,7 +81,7 @@ foreach ($builds as $build_name) { ); $build->clean(); - $build_error++; + $was_errors = true; /* XXX mail the ext dev what the error was, if it's something in the check phase like missing config.w32, it's interesting for sure. @@ -147,27 +149,16 @@ foreach ($builds as $build_name) { } try { + echo "Packaging the binaries\n"; $pkg_file = $ext->preparePackage(); - } catch (Exception $e) { echo $e->getMessage() . "\n"; $build_error++; } - if ($upload) { - echo "Uploading '$pkg_file'\n"; - /* XXX check if the path will be correct with the login */ - $target = '/pecl/releases/' . $ext->getName() . '/' . $ext->getVersion(); - if (rm\upload_pecl_pkg_ftp_curl($pkg_file, $target)) { - echo "upload success\n"; - } else { - echo "upload failed\n"; - } - } - - echo "Mailing logs"; try { - $ext->mailLogs( + echo "Packaging the logs\n"; + $logs_zip = $ext->packLogs( array( $buildconf_log_fname, $configure_log_fname, @@ -177,16 +168,57 @@ foreach ($builds as $build_name) { ); } catch (Exception $e) { echo $e->getMessage() . "\n"; + $build_error++; } + $upload_success = true; + if ($upload) { + try { + $root = $is_snap ? 'snaps' : 'releases'; + $target = '/' . $root . '/' . $ext->getName() . '/' . $ext->getVersion(); + + $pkgs_to_upload = $build_error ? array() : array($pkg_file); + + if ($build_error) { + echo "Uploading logs\n"; + } else { + echo "Uploading '$pkg_file' and logs\n"; + } + + if ($build_error && !isset($logs_zip)) { + throw new Exception("Logs wasn't packaged, nothing to upload"); + } + + if (rm\upload_pecl_pkg_ftp_curl($pkgs_to_upload, array($logs_zip), $target)) { + echo "Upload succeeded\n"; + } else { + echo "Upload failed\n"; + } + } catch (Exception $e) { + echo $e->getMessage(); + $upload_success = false; + } + } + + if (0 && $mail_maintainers) { + echo "Mailing logs"; + try { + $ext->mailLogs(array($logs_zip)); + } catch (Exception $e) { + echo $e->getMessage() . "\n"; + } + } + $build->clean(); - $ext->cleanup(); + $ext->cleanup($upload_success); rm\rmdir_rf($toupload_dir); echo "\n"; + + $was_errors = $was_errors || $build_error > 0; } echo "Done.\n"; -exit($build_error); +exit((int)$was_errors); -- PHP Webmaster List Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
