diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index e9a395412..2d367b106 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -26,7 +26,7 @@ jobs: run: git fetch origin +refs/tags/*:refs/tags/* +refs/heads/*:refs/remotes/origin/* - name: Run build script - run: php e107_make.php + run: php -dphar.readonly=0 e107_make.php working-directory: ./.github/workflows/build-release/ - name: Upload build artifacts diff --git a/.github/workflows/build-release/CoreImage.php b/.github/workflows/build-release/CoreImage.php index 2d9c9c7ac..f8bf80233 100644 --- a/.github/workflows/build-release/CoreImage.php +++ b/.github/workflows/build-release/CoreImage.php @@ -17,10 +17,12 @@ class CoreImage public function __construct($exportFolder, $tempFolder, $currentVersion, $imageFile) { - set_time_limit(240); + $imagePharFile = "$imageFile.phar"; + $phar = new Phar($imagePharFile); - file_put_contents($imageFile, ''); - $this->db = new PDO("sqlite:{$imageFile}"); + $imageSqliteFile = "$imageFile.sqlite"; + file_put_contents($imageSqliteFile, ''); + $this->db = new PDO("sqlite:{$imageSqliteFile}"); $this->db->exec(' CREATE TABLE IF NOT EXISTS file_hashes ( path TEXT, @@ -43,29 +45,17 @@ class CoreImage # ORDER BY path ASC; $this->create_image($exportFolder, $tempFolder, $currentVersion); + + $phar->startBuffering(); + $phar->setStub($this->generateStub()); + $phar->addFile($imageSqliteFile, "core_image.sqlite"); + $phar->compressFiles(Phar::BZ2); + $phar->stopBuffering(); + rename($imagePharFile, $imageFile); } function create_image($exportFolder, $tempFolder, $currentVersion) { - $data = "generateCurrentChecksums($exportFolder, $currentVersion); echo("[Core-Image] Scanning Removed Files from Git" . "\n"); @@ -199,4 +189,28 @@ class CoreImage ); $statement->execute([$releaseVersion]); } + + private function generateStub() + { + $data = "