com web/rmtools: basic integration in the closed circle: client/bin/pickle_build_next.bat client/include/PickleJ ob.php client/script/pickle.php
client/script/pickle_ ctl.php
| From: | Anatol Belski | Date: | Tue, 12 May 2015 14:55:12 +0000 |
| Subject: | com web/rmtools: basic integration in the closed circle: client/bin/pickle_build_next.bat client/include/PickleJ ob.php client/script/pickle.php client/script/pickle_ ctl.php |
||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-25978@lists.php.net to get a copy of this message | ||
Commit: c86affbafd5fa7b55bba161f70a13b2c9abfcbbb
Author: Anatol Belski <ab@php.net> Tue, 12 May 2015 16:55:12 +0200
Parents: 0d9375dff4ce3313c6e90a78ebfc5ad79b3c5f57
Branches: master pecl_legacy
Link: http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=c86affbafd5fa7b55bba161f70a13b2c9abfcbbb
Log:
basic integration in the closed circle
- fetch json
- create jobs
- pick next job
- build
still a lot to fix yet, in rmtools, pickle and pickleweb
Changed paths:
M client/bin/pickle_build_next.bat
M client/include/PickleJob.php
M client/script/pickle.php
M client/script/pickle_ctl.php
Diff:
diff --git a/client/bin/pickle_build_next.bat b/client/bin/pickle_build_next.bat
index f496de4..98fdfad 100644
--- a/client/bin/pickle_build_next.bat
+++ b/client/bin/pickle_build_next.bat
@@ -10,40 +10,59 @@ rem peclweb job script
SET BAT_DIR=%~dp0
-rem XXX besides the directories with tarballs, what comes is to implement the pickle..com
communication
+rem jobs first, sourceballs then (will be rare supposedly);
+rem btw aggregate mail and co isn't implemented, just left as it'll maybe need to be
-cd c:\pickle-in-pkg
+cd c:\pickle-in-job
for /r %%i in (*) do (
- call %BAT_DIR%pickle_build_all.bat --upload --aggregate-mail --package=%%i
+ call %BAT_DIR%pickle_build_all.bat --upload --aggregate-mail --job=%%i
del %%i
goto ONLY_ONE
)
-cd c:\pickle-in-pkg-nomail
+
+cd c:\pickle-in-snap-job
for /r %%i in (*) do (
- call %BAT_DIR%pickle_build_all.bat --upload --package=%%i
+ call %BAT_DIR%pickle_build_all.bat --upload --is-snap --aggregate-mail --job=%%i
del %%i
goto ONLY_ONE
)
-cd c:\pickle-in-snap
+
+cd c:\pickle-in-pkg
for /r %%i in (*) do (
- call %BAT_DIR%pickle_build_all.bat --upload --is-snap --aggregate-mail --package=%%i
+ call %BAT_DIR%pickle_build_all.bat --upload --aggregate-mail --package=%%i
del %%i
goto ONLY_ONE
)
-cd c:\pickle-in-snap-nomail
+rem cd c:\pickle-in-pkg-nomail
+
+rem for /r %%i in (*) do (
+rem call %BAT_DIR%pickle_build_all.bat --upload --package=%%i
+rem del %%i
+rem goto ONLY_ONE
+rem )
+
+cd c:\pickle-in-snap
for /r %%i in (*) do (
- call %BAT_DIR%pickle_build_all.bat --upload --is-snap --package=%%i
+ call %BAT_DIR%pickle_build_all.bat --upload --is-snap --aggregate-mail --package=%%i
del %%i
goto ONLY_ONE
)
+rem cd c:\pickle-in-snap-nomail
+
+rem for /r %%i in (*) do (
+rem call %BAT_DIR%pickle_build_all.bat --upload --is-snap --package=%%i
+rem del %%i
+rem goto ONLY_ONE
+rem )
+
:ONLY_ONE
cd %BAT_DIR%
echo .
diff --git a/client/include/PickleJob.php b/client/include/PickleJob.php
index 3b2b328..09f62b1 100644
--- a/client/include/PickleJob.php
+++ b/client/include/PickleJob.php
@@ -16,6 +16,20 @@ class PickleJob
$this->job_dir = $job_dir;
}
+ public static function loadData($path)
+ {
+ if (!file_exists($path)) {
+ throw new \Exception("Couldn't load job file '$path'");
+ }
+
+ $job_data = json_decode(file_get_contents($path), true);
+ if (!$job_data) {
+ throw new \Exception("Couldn't decode job data from '$path'");
+ }
+
+ return $job_data;
+ }
+
public function add(array $tag)
{
if (!isset($tag["support"]["source"])) {
diff --git a/client/script/pickle.php b/client/script/pickle.php
index 80a8b18..563c858 100644
--- a/client/script/pickle.php
+++ b/client/script/pickle.php
@@ -4,25 +4,28 @@ include __DIR__ . '/../data/config.php';
include __DIR__ . '/../include/PickleBranch.php';
include __DIR__ . '/../include/Tools.php';
include __DIR__ . '/../include/PickleExt.php';
+include __DIR__ . '/../include/PickleJob.php';
use rmtools as rm;
-$longopts = array("config:", "package:", "upload",
"is-snap", "first", "last");
+$longopts = array("config:", "package:", "job:", "upload",
"is-snap", "first", "last");
$options = getopt(NULL, $longopts);
$branch_name = isset($options['config']) ? $options['config'] : NULL;
$pkg_path = isset($options['package']) ? $options['package'] : NULL;
+$job_path = isset($options['job']) ? $options['job'] : NULL;
$upload = isset($options['upload']);
$is_snap = isset($options['is-snap']);
$is_last_run = isset($options['last']);
$is_first_run = isset($options['first']);
-if (NULL == $branch_name || NULL == $pkg_path) {
+if (NULL == $branch_name || (NULL == $pkg_path && NULL == $job_path)) {
echo "Usage: pickle.php [OPTION] ..." . PHP_EOL;
echo " --config Configuration file name without suffix, required." . PHP_EOL;
- echo " --package Path to the PECL package, required." . PHP_EOL;
+ echo " --package Path to the package source, either this or --job required." .
PHP_EOL;
+ echo " --job Path to the package source, either this or --package required."
.. PHP_EOL;
echo " --upload Upload the builds to the windows.php.net, optional." . PHP_EOL;
echo " --is-snap We upload to releases by default, but this one goes to snaps,
optional." . PHP_EOL;
echo " --first This call is the first in the series for the same package file,
optional." . PHP_EOL;
@@ -37,6 +40,17 @@ if (NULL == $branch_name || NULL == $pkg_path) {
echo "pecl --config=pickle70 --upload --package=some-1.0.0" . PHP_EOL;
}
+if (NULL == $pkg_path) {
+ /* TODO implement for PickleJob*/
+ try {
+ $job_data = rm\PickleJob::loadData($job_path);
+
+ $pkg_path = $job_data["src"];
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ exit(3);
+ }
+}
$config_path = __DIR__ . '/../data/config/pickle/' . $branch_name . '.ini';
@@ -162,5 +176,15 @@ foreach ($builds as $build_name) {
echo PHP_EOL;
}
+if ($is_last_run) {
+ if (file_exists($job_path)) {
+ unlink($job_path);
+ }
+
+ if (file_exists($pkg_path)) {
+ unlink($pkg_path);
+ }
+}
+
exit(0);
diff --git a/client/script/pickle_ctl.php b/client/script/pickle_ctl.php
index 7040eab..5ae8162 100644
--- a/client/script/pickle_ctl.php
+++ b/client/script/pickle_ctl.php
@@ -9,7 +9,7 @@ use rmtools as rm;
$sync_host = "http://aa382bdf.ngrok.io";
$db_dir = __DIR__ . '/../data/pickle_db';
-$job_dir = 'c:\pickle-in-pkg';
+$job_dir = 'c:\pickle-in-job';
$longopts = array("help", "sync", "init-db");