Cleaning API
Publish PHP Package / docker (push) Successful in 6s
Details
Publish PHP Package / docker (push) Successful in 6s
Details
This commit is contained in:
parent
1b6bddd7ea
commit
0dc2cfda6d
|
@ -342,22 +342,6 @@ class ConfigCacheFileMap
|
|||
}
|
||||
}
|
||||
|
||||
class ConfigCacheUpdateResult
|
||||
{
|
||||
public ConfigDirFiles $affected_files;
|
||||
public array $affected_entries = array();
|
||||
|
||||
/** @var array<string, string> */
|
||||
public array $errors = array();
|
||||
public int $corruptions = 0;
|
||||
public int $fast_jsons = 0;
|
||||
|
||||
function __construct(ConfigCacheUpdateParams $params)
|
||||
{
|
||||
$this->affected_files = $params->affected_files;
|
||||
}
|
||||
}
|
||||
|
||||
class ConfigCacheUpdateParams
|
||||
{
|
||||
const MAX_DEFAULT_WORKERS = 5;
|
||||
|
@ -408,7 +392,7 @@ class ConfigCacheUpdateParams
|
|||
}
|
||||
}
|
||||
|
||||
function _config_cache_update(ConfigCacheUpdateParams $params) : ConfigCacheUpdateResult
|
||||
function _config_cache_update(ConfigUpdateResult $result, ConfigCacheUpdateParams $params)
|
||||
{
|
||||
$jobs = $params->splitJobs(sort: true);
|
||||
|
||||
|
@ -427,18 +411,14 @@ function _config_cache_update(ConfigCacheUpdateParams $params) : ConfigCacheUpda
|
|||
}
|
||||
}
|
||||
|
||||
$result = _config_merge_update_results($params, $results_by_job);
|
||||
_config_merge_update_results($result, $results_by_job);
|
||||
|
||||
if($params->verbose)
|
||||
config_log("Miss(Fast): {$result->affected_files->count()}({$result->fast_jsons})");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
function _config_merge_update_results(ConfigCacheUpdateParams $params, array $results_by_job) : ConfigCacheUpdateResult
|
||||
function _config_merge_update_results(ConfigUpdateResult $result, array $results_by_job)
|
||||
{
|
||||
$result = new ConfigCacheUpdateResult($params);
|
||||
|
||||
$total_fast_jsons = 0;
|
||||
|
||||
foreach($results_by_job as $results)
|
||||
|
@ -463,8 +443,6 @@ function _config_merge_update_results(ConfigCacheUpdateParams $params, array $re
|
|||
}
|
||||
|
||||
$result->fast_jsons = $total_fast_jsons;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
function _config_update_cache_entry(ConfigCacheUpdateParams $params, $base_dir, string $file,
|
||||
|
|
|
@ -48,7 +48,7 @@ enum ConfigUpdateMode : int
|
|||
{
|
||||
case Force = 1;
|
||||
case DetectChanged = 2;
|
||||
case Patch = 3;
|
||||
case Selected = 3;
|
||||
}
|
||||
|
||||
class ConfigUpdateRequest
|
||||
|
@ -57,19 +57,27 @@ class ConfigUpdateRequest
|
|||
public ?ConfigDirFiles $files;
|
||||
public ?string $result_file;
|
||||
public ?\taskman\TaskmanFileChanges $file_changes;
|
||||
public bool $verbose = false;
|
||||
public bool $return_entries = false;
|
||||
|
||||
private function __construct() {}
|
||||
|
||||
static function force(?ConfigDirFiles $files = null) : ConfigUpdateRequest
|
||||
static function force(\taskman\artefact\TaskmanDirFiles|ConfigDirFiles|null $files = null) : ConfigUpdateRequest
|
||||
{
|
||||
if($files instanceof \taskman\artefact\TaskmanDirFiles)
|
||||
$files = ConfigDirFiles::makeFromArtefactFiles($files);
|
||||
|
||||
$req = new ConfigUpdateRequest();
|
||||
$req->mode = ConfigUpdateMode::Force;
|
||||
$req->files = $files;
|
||||
return $req;
|
||||
}
|
||||
|
||||
static function detectChanged(string $result_file, ?ConfigDirFiles $files = null) : ConfigUpdateRequest
|
||||
static function detectChanged(string $result_file, \taskman\artefact\TaskmanDirFiles|ConfigDirFiles|null $files = null) : ConfigUpdateRequest
|
||||
{
|
||||
if($files instanceof \taskman\artefact\TaskmanDirFiles)
|
||||
$files = ConfigDirFiles::makeFromArtefactFiles($files);
|
||||
|
||||
$req = new ConfigUpdateRequest();
|
||||
$req->mode = ConfigUpdateMode::DetectChanged;
|
||||
$req->files = $files;
|
||||
|
@ -77,21 +85,32 @@ class ConfigUpdateRequest
|
|||
return $req;
|
||||
}
|
||||
|
||||
static function patch(\taskman\TaskmanFileChanges $file_changes, ConfigDirFiles $files) : ConfigUpdateRequest
|
||||
static function selected(\taskman\artefact\TaskmanDirFiles|ConfigDirFiles $files, \taskman\TaskmanFileChanges|null $file_changes = null) : ConfigUpdateRequest
|
||||
{
|
||||
if($files instanceof \taskman\artefact\TaskmanDirFiles)
|
||||
$files = ConfigDirFiles::makeFromArtefactFiles($files);
|
||||
|
||||
$req = new ConfigUpdateRequest();
|
||||
$req->mode = ConfigUpdateMode::Patch;
|
||||
$req->mode = ConfigUpdateMode::Selected;
|
||||
$req->files = $files;
|
||||
$req->file_changes = $file_changes;
|
||||
return $req;
|
||||
}
|
||||
}
|
||||
|
||||
static function selected(ConfigDirFiles $files) : ConfigUpdateRequest
|
||||
class ConfigUpdateResult
|
||||
{
|
||||
public ConfigDirFiles $affected_files;
|
||||
public array $affected_entries = array();
|
||||
|
||||
/** @var array<string, string> */
|
||||
public array $errors = array();
|
||||
public int $corruptions = 0;
|
||||
public int $fast_jsons = 0;
|
||||
|
||||
function __construct(ConfigCacheUpdateParams $params)
|
||||
{
|
||||
$req = new ConfigUpdateRequest();
|
||||
$req->mode = ConfigUpdateMode::Patch;
|
||||
$req->files = $files;
|
||||
return $req;
|
||||
$this->affected_files = $params->affected_files;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -138,12 +157,12 @@ class ConfigManager
|
|||
return $this->file_map;
|
||||
}
|
||||
|
||||
function updateCache(ConfigUpdateRequest $req, bool $return_entries = false, bool $verbose = false) : ConfigCacheUpdateResult
|
||||
function update(ConfigUpdateRequest $req) : ConfigUpdateResult
|
||||
{
|
||||
config_log("Updating cache, mode '{$req->mode->name}'...");
|
||||
config_log("Updating configs, mode '{$req->mode->name}'...");
|
||||
|
||||
if($req->files === null)
|
||||
$req->files = $this->scanFiles(extension: '.js', verbose: $verbose);
|
||||
$req->files = $this->scanFiles(extension: '.js', verbose: $req->verbose);
|
||||
|
||||
$added_files = [];
|
||||
$removed_files = [];
|
||||
|
@ -159,7 +178,7 @@ class ConfigManager
|
|||
$update_params = new ConfigCacheUpdateParams(
|
||||
globals: $this->globals,
|
||||
affected_files: $affected_files,
|
||||
verbose: $verbose
|
||||
verbose: $req->verbose
|
||||
);
|
||||
$update_result = self::_updateCache($update_params);
|
||||
|
||||
|
@ -168,7 +187,7 @@ class ConfigManager
|
|||
|
||||
$this->_updateFileMap($req, $affected_files, $added_files, $removed_files);
|
||||
|
||||
if($return_entries)
|
||||
if($req->return_entries)
|
||||
{
|
||||
foreach($affected_files as $file)
|
||||
{
|
||||
|
@ -180,14 +199,16 @@ class ConfigManager
|
|||
return $update_result;
|
||||
}
|
||||
|
||||
private function _updateCache(ConfigCacheUpdateParams $params) : ConfigCacheUpdateResult
|
||||
private function _updateCache(ConfigCacheUpdateParams $params) : ConfigUpdateResult
|
||||
{
|
||||
$result = new ConfigUpdateResult($params);
|
||||
|
||||
if($params->affected_files->isEmpty())
|
||||
return new ConfigCacheUpdateResult($params);
|
||||
return $result;
|
||||
|
||||
$t = microtime(true);
|
||||
|
||||
$result = _config_cache_update($params);
|
||||
_config_cache_update($result, $params);
|
||||
|
||||
if($result->errors)
|
||||
{
|
||||
|
@ -223,7 +244,7 @@ class ConfigManager
|
|||
list($added_files, $removed_files) = $fs_cache_map->compare($req->files->getAllFiles());
|
||||
config_log("File map compare, added: ".count($added_files).", removed: ".count($removed_files));
|
||||
}
|
||||
else if($req->mode === ConfigUpdateMode::Patch)
|
||||
else if($req->mode === ConfigUpdateMode::Selected)
|
||||
{
|
||||
if($req->file_changes != null)
|
||||
{
|
||||
|
@ -299,7 +320,7 @@ class ConfigManager
|
|||
}
|
||||
}
|
||||
}
|
||||
else if($req->mode === ConfigUpdateMode::Patch)
|
||||
else if($req->mode === ConfigUpdateMode::Selected)
|
||||
{
|
||||
$affected_files = ConfigDirFiles::makeFor($this);
|
||||
|
||||
|
@ -448,3 +469,13 @@ function config_bench_load(ConfigGlobals $globals, string $file)
|
|||
config_log("Load: " . (microtime(true) - $t));
|
||||
}
|
||||
|
||||
function config_changes_has_deleted_or_added(TaskmanFileChanges $file_changes, iterable $files) : bool
|
||||
{
|
||||
foreach($files as $file)
|
||||
{
|
||||
if(str_ends_with($file, '.conf.js') && ($file_changes->isDeleted($file) || $file_changes->isCreated($file)))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue