1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-06 22:57:14 +02:00

More accurate version generator in e107_make.php build script

No longer trips up on hyphens in the tagged releases
This commit is contained in:
Nick Liu
2020-07-08 14:35:39 -05:00
parent b0376d7689
commit 3fcbcd34c0
2 changed files with 22 additions and 9 deletions

View File

@@ -10,6 +10,8 @@
class OsHelper class OsHelper
{ {
const REGEX_MATCH_GIT_DESCRIBE_TAGS = "-[0-9]+-g[0-9a-f]+";
/** /**
* @param string $command The command to run * @param string $command The command to run
* @param string $stdout Reference to the STDOUT output as a string * @param string $stdout Reference to the STDOUT output as a string
@@ -52,14 +54,25 @@ class OsHelper
public static function gitVersionToPhpVersion($gitVersion, $verFileVersion = "0") public static function gitVersionToPhpVersion($gitVersion, $verFileVersion = "0")
{ {
$verFileVersion = explode(" ", $verFileVersion); $verFileVersion = explode(" ", $verFileVersion);
$verFileVersion = array_shift($verFileVersion); $verFileVersion = array_shift($verFileVersion);
$version = preg_replace("/^v/", "", $gitVersion); $version = preg_replace("/^v/", "", $gitVersion);
$versionSplit = explode("-", $version); $versionSplit = explode("-", $version);
if (count($versionSplit) > 1) $matchGitDescribeTags = self::REGEX_MATCH_GIT_DESCRIBE_TAGS;
if (preg_match("/{$matchGitDescribeTags}$/", $version))
{ {
if (version_compare($verFileVersion, $versionSplit[0], '>')) $versionSplit[0] = $verFileVersion; $increment = 1;
$versionSplit[0] .= "dev"; if (version_compare($verFileVersion, $version, '>'))
{
$increment = 0;
$versionSplit[0] = $verFileVersion;
}
$version = implode("-", $versionSplit);
return preg_replace_callback("/(.*\.)([0-9]+)([^.]*)({$matchGitDescribeTags})$/",
function ($matches) use ($increment)
{
return $matches[1] . ($matches[2] + $increment) . "dev" . $matches[4];
}, $version);
} }
return implode("-", $versionSplit); return implode("-", $versionSplit);
} }

View File

@@ -91,7 +91,7 @@ class e107Build
} }
} }
private function validateReadme() private function validateReadme()
{ {
//check for readme files associated with configured releases //check for readme files associated with configured releases
foreach ($this->config['releases'] as $rel) foreach ($this->config['releases'] as $rel)
@@ -276,7 +276,7 @@ class e107Build
$releaseDir = "{$this->config['baseDir']}/target/{$this->config['main']['name']}/release/" . $this->releaseDir; $releaseDir = "{$this->config['baseDir']}/target/{$this->config['main']['name']}/release/" . $this->releaseDir;
$this->copyCoreImage($releaseDir . "/core_image.phar"); $this->copyCoreImage($releaseDir . "/core_image.phar");
/** /**
* git archive -o update.zip HEAD $(git diff --name-only [id]) * git archive -o update.zip HEAD $(git diff --name-only [id])
@@ -312,8 +312,8 @@ class e107Build
unlink($tarfile); unlink($tarfile);
} // end loop } // end loop
$this->status('Removing export folder', true); $this->status('Removing export folder', true);
$this->rmdir($this->exportDir); $this->rmdir($this->exportDir);
} }
private function emptyExportDir() private function emptyExportDir()
@@ -379,7 +379,7 @@ class e107Build
{ {
$version = $this->version; $version = $this->version;
if (strpos($version, "-") !== false) if (preg_match("/" . OsHelper::REGEX_MATCH_GIT_DESCRIBE_TAGS . "$/", $version))
{ {
$version .= " nightly build " . date('Ymd'); $version .= " nightly build " . date('Ymd');
} }