diff --git a/.mokogitea/workflows/auto-bump.yml b/.mokogitea/workflows/auto-bump.yml index dee20d6..fb9dc82 100644 --- a/.mokogitea/workflows/auto-bump.yml +++ b/.mokogitea/workflows/auto-bump.yml @@ -16,6 +16,7 @@ on: push: branches: - dev + - rc - 'feature/**' - 'patch/**' diff --git a/cli/release_publish.php b/cli/release_publish.php index 30c97b2..73d5b0a 100644 --- a/cli/release_publish.php +++ b/cli/release_publish.php @@ -187,17 +187,25 @@ if (!$dryRun) { echo "[DRY-RUN] Would build and upload {$releaseVersion} to {$releaseTag}\n"; } -// -- Step 4: Create copies for all lesser stability streams -- -echo "\n--- Step 4: Create copies for lesser streams ---\n"; +// -- Step 4: Build separate packages for all lesser stability streams -- +// Each stream gets its own ZIP with the correct version INSIDE templateDetails.xml. +// Joomla reads version from the ZIP after install, so it must match. +echo "\n--- Step 4: Build packages for lesser streams ---\n"; for ($i = 0; $i < $stabilityIndex; $i++) { $lesserStability = $allStabilities[$i]; $lesserTag = $releaseTagMap[$lesserStability]; $lesserVersion = $baseVersion . $suffixMap[$lesserStability]; - echo " Creating {$lesserStability} release: {$lesserVersion}\n"; + echo " Building {$lesserStability} release: {$lesserVersion}\n"; if (!$dryRun) { - // Create or update the lesser release with the same package + // Set version to lesser stream's suffixed version in source files + passthru("{$php} {$cli}/version_set_platform.php --path " . escapeshellarg($path) + . " --version " . escapeshellarg($baseVersion) + . " --branch " . escapeshellarg($lesserStability) + . " --stability " . escapeshellarg($lesserStability) . " 2>/dev/null"); + + // Create release tag passthru("{$php} {$cli}/release_create.php --path " . escapeshellarg($path) . " --version " . escapeshellarg($lesserVersion) . " --tag " . escapeshellarg($lesserTag) @@ -206,7 +214,7 @@ for ($i = 0; $i < $stabilityIndex; $i++) { . " --repo " . escapeshellarg($repo) . " --branch " . escapeshellarg($branch) . " 2>&1"); - // Upload the same package to the lesser release + // Build and upload package (ZIP will contain the lesser version) passthru("{$php} {$cli}/release_package.php --path " . escapeshellarg($path) . " --version " . escapeshellarg($lesserVersion) . " --tag " . escapeshellarg($lesserTag) @@ -214,9 +222,19 @@ for ($i = 0; $i < $stabilityIndex; $i++) { . " --api-base " . escapeshellarg($apiBase) . " --repo " . escapeshellarg($repo) . " --output /tmp 2>&1"); + } else { + echo " [DRY-RUN] Would build {$lesserVersion} ZIP and upload to {$lesserTag}\n"; } } +// Restore primary release version in source files +if (!$dryRun && $stabilityIndex > 0) { + passthru("{$php} {$cli}/version_set_platform.php --path " . escapeshellarg($path) + . " --version " . escapeshellarg($baseVersion) + . " --branch " . escapeshellarg($branch) + . " --stability " . escapeshellarg($stability) . " 2>/dev/null"); +} + // -- Step 5: Update ALL streams in updates.xml -- echo "\n--- Step 5: Update updates.xml for ALL streams ---\n"; // Write entry for the primary stream and all lesser streams