Improving handling of removed files for Patch case
Publish PHP Package / docker (push) Successful in 6s
Details
Publish PHP Package / docker (push) Successful in 6s
Details
This commit is contained in:
parent
ed2e8a4cb3
commit
7b73207251
|
@ -139,7 +139,7 @@ class ConfigManager
|
|||
$removed_files = [];
|
||||
$this->_checkFileMap($req, $added_files, $removed_files);
|
||||
|
||||
$affected_files = $this->_getAffectedFiles($req, $removed_files);
|
||||
$affected_files = $this->_getAffectedFiles($req, $added_files, $removed_files);
|
||||
|
||||
//NOTE: at this poine taking into account only config files
|
||||
$affected_files->filter(fn($file) => str_ends_with($file, '.conf.js'));
|
||||
|
@ -213,6 +213,18 @@ 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)
|
||||
{
|
||||
foreach($req->files as $file)
|
||||
{
|
||||
//TODO: is it robust enough?
|
||||
//TODO: we should make difference between changed and added!
|
||||
if(file_exists($file))
|
||||
$added_files[] = $file;
|
||||
else
|
||||
$removed_files[] = $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function _updateFileMap(ConfigUpdateRequest $req, ConfigDirFiles $affected_files, array $added_files, array $removed_files)
|
||||
|
@ -235,7 +247,7 @@ class ConfigManager
|
|||
}
|
||||
}
|
||||
|
||||
private function _getAffectedFiles(ConfigUpdateRequest $req, array $removed_files) : ConfigDirFiles
|
||||
private function _getAffectedFiles(ConfigUpdateRequest $req, array $added_files, array $removed_files) : ConfigDirFiles
|
||||
{
|
||||
$fs_cache_map = $this->getFileMap();
|
||||
|
||||
|
@ -283,6 +295,17 @@ class ConfigManager
|
|||
{
|
||||
$affected_files = ConfigDirFiles::makeFor($this);
|
||||
|
||||
foreach($req->files as $file)
|
||||
{
|
||||
//removed config special case
|
||||
if(str_ends_with($file, '.conf.js') && in_array($file, $removed_files))
|
||||
{
|
||||
//NOTE: let it be for now, rebuilds the whole bundle
|
||||
$affected_files = $this->scanFiles(extension: '.conf.js');
|
||||
return $affected_files;
|
||||
}
|
||||
}
|
||||
|
||||
foreach($req->files as $file)
|
||||
{
|
||||
$affected_files->addFile($file, unique: true);
|
||||
|
|
Loading…
Reference in New Issue