diff --git a/module/compile/control.php b/module/compile/control.php
index cc9d6c945b..0eaa972775 100644
--- a/module/compile/control.php
+++ b/module/compile/control.php
@@ -80,8 +80,10 @@ class compile extends control
$job = $this->loadModel('job')->getByID($build->job);
if(empty($build->logs) and !in_array($build->status, array('created', 'pending'))) $build->logs = $this->compile->getLogs($job, $build);
+ $logs = str_replace("\r\n", "
", $build->logs);
+ $logs = str_replace("\n", "
", $logs);
- $this->view->logs = str_replace("\r\n","
", $build->logs);
+ $this->view->logs = $logs;
$this->view->build = $build;
$this->view->job = $job;
diff --git a/module/compile/model.php b/module/compile/model.php
index 24793716f7..c46cb33c72 100644
--- a/module/compile/model.php
+++ b/module/compile/model.php
@@ -270,7 +270,7 @@ class compileModel extends model
foreach($jobInfo->builds as $build)
{
$lastSyncTime = strtotime($job->lastSyncDate);
- if($build->timestamp < $lastSyncTime) break;
+ if($build->timestamp < $lastSyncTime * 1000) break;
if(isset($compilePairs[$build->queueId])) continue;
$data = new stdclass();
@@ -279,7 +279,7 @@ class compileModel extends model
$data->queue = $build->queueId;
$data->status = $build->result == 'SUCCESS' ? 'success' : 'failure';
$data->createdBy = 'guest';
- $data->createdDate = date('Y-m-d H:i:s', $build->timestamp);
+ $data->createdDate = date('Y-m-d H:i:s', $build->timestamp / 1000);
$data->updateDate = $data->createdDate;
$this->dao->insert(TABLE_COMPILE)->data($data)->exec();
@@ -305,40 +305,36 @@ class compileModel extends model
$url = sprintf($this->loadModel('gitlab')->getApiRoot($gitlab->id, false), "/projects/{$projectID}/pipelines");
/* Get build list by API. */
- $builds = array();
- $compilePairs = $this->dao->select('queue,job')->from(TABLE_COMPILE)->where('job')->eq($job->id)->andWhere('queue')->gt(0)->fetchPairs();
for($page = 1; true; $page++)
{
- $results = json_decode(commonModel::http($url . "&ref={$ref}&order_by=id&sort=desc&page={$page}&per_page=100"));
- if(!is_array($results)) break;
- if(!empty($results))
+ $param = $job->lastSyncDate ? '&updated_after=' . date('YYYY-MM-DDThh:mm:ssZ', strtotime($job->lastSyncDate)) : '';
+ $builds = json_decode(commonModel::http($url . "&ref={$ref}&order_by=id&sort=asc&page={$page}&per_page=100" . $param));
+ if(!is_array($builds)) break;
+
+ if(!empty($builds))
{
- /* Check whether it has been synchronized by create time. */
- $build = $results[0];
- $createDate = date('Y-m-d H:i:s', strtotime($build->created_at));
- if($createDate < $job->lastSyncDate) break;
+ $queueIDList = array();
+ foreach($builds as $build) $queueIDList[] = $build->id;
+ $compilePairs = $this->dao->select('queue,job')->from(TABLE_COMPILE)->where('job')->eq($job->id)->andWhere('queue')->in($queueIDList)->fetchPairs();
- $builds = array_merge($builds, $results);
+ foreach($builds as $build)
+ {
+ if(isset($compilePairs[$build->id])) continue;
+
+ $data = new stdclass();
+ $data->name = $job->name;
+ $data->job = $job->id;
+ $data->queue = $build->id;
+ $data->status = $build->status;
+ $data->createdBy = 'guest';
+ $data->createdDate = date('Y-m-d H:i:s', strtotime($build->created_at));
+ $data->updateDate = date('Y-m-d H:i:s', strtotime($build->updated_at));
+
+ $this->dao->insert(TABLE_COMPILE)->data($data)->exec();
+ }
}
- if(count($results) < 100) break;
- }
- foreach($builds as $build)
- {
- $createDate = date('Y-m-d H:i:s', strtotime($build->created_at));
- if($createDate < $job->lastSyncDate) break;
- if(isset($compilePairs[$build->id])) continue;
-
- $data = new stdclass();
- $data->name = $job->name;
- $data->job = $job->id;
- $data->queue = $build->id;
- $data->status = $build->status;
- $data->createdBy = 'guest';
- $data->createdDate = $createDate;
- $data->updateDate = date('Y-m-d H:i:s', strtotime($build->updated_at));
-
- $this->dao->insert(TABLE_COMPILE)->data($data)->exec();
+ if(count($builds) < 100) break;
}
$now = helper::now();