diff --git a/build/config_builder b/build/config_builder index d606cc9c..24b7efa4 100755 --- a/build/config_builder +++ b/build/config_builder @@ -60,15 +60,16 @@ foreach ($releases as $releaseName => $info) { if (isset($latestReleases[$stability][$previousMajor])) { $upgradeFrom = $latestReleases[$stability][$previousMajor]; $generatedConfig[$stability][$upgradeFrom][$deployPercent] = $generatedConfig[$stability][$major]['100']; - } elseif (isset($latestReleases['stable'][$major -1])) { + } elseif (isset($latestReleases['stable'][$previousMajor])) { $upgradeFrom = $latestReleases['stable'][$previousMajor]; $generatedConfig[$stability][$upgradeFrom][$deployPercent] = $generatedConfig[$stability][$major]['100']; } // For stable versions, check if we can upgrade from a beta version + // Beta version are always deployed at 100% if ($stability === 'stable') { - if (isset($latestReleases['beta'][$previousMajor])) { - $upgradeFrom = $latestReleases['beta'][$previousMajor]; + if (isset($latestReleases['beta'][$previousMajor]) || $deployPercent !== 100) { + $upgradeFrom = $latestReleases['beta'][$previousMajor] ?? $latestReleases['stable'][$previousMajor]; $generatedConfig['beta'][$upgradeFrom][100] = $generatedConfig[$stability][$major]['100']; } } diff --git a/config/config.php b/config/config.php index 05dd7296..7ebed34b 100644 --- a/config/config.php +++ b/config/config.php @@ -1,6 +1,38 @@ [ + '30' => [ + '100' => [ + 'latest' => '30.0.0', + 'internalVersion' => '30.0.0.14', + 'downloadUrl' => 'https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip', + 'web' => 'https://docs.nextcloud.com/server/30/admin_manual/maintenance/upgrade.html', + 'eol' => false, + 'minPHPVersion' => '8.1', + 'signature' => 'QjU8BAz/b+ZSv1CFaom3VHE5IbT8giQgJ6/N00jPnWlRD8daXIsmIoLRe9UMl1yi +hTRRW3r7MQCa6RklmtZIAxsoRYlk7eEdbogKTODLRe9gsXdXF2KFisADl6bcEw1H +MLyVf7ncFnFlp9GYwpUEcGvJAzIcckkGTmBHAMTfmpSNQoijzdCP9ytKP2tJSe7h +tOXDKB0sOYzsO5A725ERye0RKfgMY7TRG0vq9tIxB7ydSykxVAGglKHDwl/6mn5D +NUfRJKep0nzpJXIOz+BiE6tTRxYMeRkUsI2WLPnPC3Ltu2Xl0u3iOoWaDfdD0Ox9 +XjOoUiZRQ+fUfAGTnEZ+Lg==', + ], + ], + '29.0.7.1' => [ + '30' => [ + 'latest' => '30.0.0', + 'internalVersion' => '30.0.0.14', + 'downloadUrl' => 'https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip', + 'web' => 'https://docs.nextcloud.com/server/30/admin_manual/maintenance/upgrade.html', + 'eol' => false, + 'minPHPVersion' => '8.1', + 'signature' => 'QjU8BAz/b+ZSv1CFaom3VHE5IbT8giQgJ6/N00jPnWlRD8daXIsmIoLRe9UMl1yi +hTRRW3r7MQCa6RklmtZIAxsoRYlk7eEdbogKTODLRe9gsXdXF2KFisADl6bcEw1H +MLyVf7ncFnFlp9GYwpUEcGvJAzIcckkGTmBHAMTfmpSNQoijzdCP9ytKP2tJSe7h +tOXDKB0sOYzsO5A725ERye0RKfgMY7TRG0vq9tIxB7ydSykxVAGglKHDwl/6mn5D +NUfRJKep0nzpJXIOz+BiE6tTRxYMeRkUsI2WLPnPC3Ltu2Xl0u3iOoWaDfdD0Ox9 +XjOoUiZRQ+fUfAGTnEZ+Lg==', + ], + ], '29' => [ '100' => [ 'latest' => '29.0.7', @@ -644,36 +676,20 @@ ], ], 'beta' => [ - '30' => [ - '100' => [ - 'latest' => '30.0.0 RC5', - 'internalVersion' => '30.0.0.13', - 'downloadUrl' => 'https://download.nextcloud.com/server/prereleases/nextcloud-30.0.0rc5.zip', - 'web' => 'https://docs.nextcloud.com/server/30/admin_manual/maintenance/upgrade.html', - 'eol' => false, - 'minPHPVersion' => '8.1', - 'signature' => 'sCkQx6CgJezLvF87Nkdtx83qLvW6Lnj+U6Lz0lKZocn1E957y/pnkUmWXs4FU33n -4tW9b6PGQJTCkP0jWqN7tEc80VII2ZrCESOzI3F8uQDYqoVWeOLxP7gYorXEh+oY -Fp5NU9eIsfipcH0AMGtBtuFy1+1mYeSfSMoFl5E/7CPaOQksD9MS4NRtQ6TYfK7L -W0yoo+NGcf9WGQ75z4g1p7l7+5tvpQ2a794Bg0eIIZePNUrJ/puqJ53x7nQ2d41U -qjIENY7lso6I1X+ggz2tFegXab7cRP0uUIelgOJMV9rPZIGfqMwmj5gWlcr1a847 -/V2ry0elGhEPZAqn9zzBuw==', - ], - ], '29.0.7.1' => [ '100' => [ - 'latest' => '30.0.0 RC5', - 'internalVersion' => '30.0.0.13', - 'downloadUrl' => 'https://download.nextcloud.com/server/prereleases/nextcloud-30.0.0rc5.zip', + 'latest' => '30.0.0', + 'internalVersion' => '30.0.0.14', + 'downloadUrl' => 'https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip', 'web' => 'https://docs.nextcloud.com/server/30/admin_manual/maintenance/upgrade.html', 'eol' => false, 'minPHPVersion' => '8.1', - 'signature' => 'sCkQx6CgJezLvF87Nkdtx83qLvW6Lnj+U6Lz0lKZocn1E957y/pnkUmWXs4FU33n -4tW9b6PGQJTCkP0jWqN7tEc80VII2ZrCESOzI3F8uQDYqoVWeOLxP7gYorXEh+oY -Fp5NU9eIsfipcH0AMGtBtuFy1+1mYeSfSMoFl5E/7CPaOQksD9MS4NRtQ6TYfK7L -W0yoo+NGcf9WGQ75z4g1p7l7+5tvpQ2a794Bg0eIIZePNUrJ/puqJ53x7nQ2d41U -qjIENY7lso6I1X+ggz2tFegXab7cRP0uUIelgOJMV9rPZIGfqMwmj5gWlcr1a847 -/V2ry0elGhEPZAqn9zzBuw==', + 'signature' => 'QjU8BAz/b+ZSv1CFaom3VHE5IbT8giQgJ6/N00jPnWlRD8daXIsmIoLRe9UMl1yi +hTRRW3r7MQCa6RklmtZIAxsoRYlk7eEdbogKTODLRe9gsXdXF2KFisADl6bcEw1H +MLyVf7ncFnFlp9GYwpUEcGvJAzIcckkGTmBHAMTfmpSNQoijzdCP9ytKP2tJSe7h +tOXDKB0sOYzsO5A725ERye0RKfgMY7TRG0vq9tIxB7ydSykxVAGglKHDwl/6mn5D +NUfRJKep0nzpJXIOz+BiE6tTRxYMeRkUsI2WLPnPC3Ltu2Xl0u3iOoWaDfdD0Ox9 +XjOoUiZRQ+fUfAGTnEZ+Lg==', ], ], ], diff --git a/config/releases.json b/config/releases.json index eb5763d6..8c889369 100644 --- a/config/releases.json +++ b/config/releases.json @@ -93,8 +93,9 @@ "internalVersion": "29.0.7.1", "signature": "rOd3OFdhAAULU7gI/fucuzwSe2FcSju8PiS0QgBInoNQZLJBl05QYOt+jC3clW2R+k7C6hyRHQ3/XU0K1gU9T9PSI2C87fIFjhzk0+J/s0QHxpvByv3i4pJ5yqdnA8m06Y6J7EJAHz+DQq0aAafci2Qlyzto8m5CXE59muv4lSMn9G24bOsp2zd/zkzZ1La7b8Uo3rLrIyJPRI9yocnMnddlYHX6YG5bXGc+eWeq6hPFg9gqm1KOu2fI6i9bH8KH4g/zRSuGF2eC+fmIPDCg/vL53kDNC9eWHzRCJ7EjY/VQ4NACdC3wZtvKAmnw2YqKEgIWmVloS4eF/VjQ11MOJw==" }, - "30.0.0 RC5": { - "internalVersion": "30.0.0.13", - "signature": "sCkQx6CgJezLvF87Nkdtx83qLvW6Lnj+U6Lz0lKZocn1E957y/pnkUmWXs4FU33n4tW9b6PGQJTCkP0jWqN7tEc80VII2ZrCESOzI3F8uQDYqoVWeOLxP7gYorXEh+oYFp5NU9eIsfipcH0AMGtBtuFy1+1mYeSfSMoFl5E/7CPaOQksD9MS4NRtQ6TYfK7LW0yoo+NGcf9WGQ75z4g1p7l7+5tvpQ2a794Bg0eIIZePNUrJ/puqJ53x7nQ2d41UqjIENY7lso6I1X+ggz2tFegXab7cRP0uUIelgOJMV9rPZIGfqMwmj5gWlcr1a847/V2ry0elGhEPZAqn9zzBuw==" + "30.0.0": { + "internalVersion": "30.0.0.14", + "signature": "QjU8BAz/b+ZSv1CFaom3VHE5IbT8giQgJ6/N00jPnWlRD8daXIsmIoLRe9UMl1yihTRRW3r7MQCa6RklmtZIAxsoRYlk7eEdbogKTODLRe9gsXdXF2KFisADl6bcEw1HMLyVf7ncFnFlp9GYwpUEcGvJAzIcckkGTmBHAMTfmpSNQoijzdCP9ytKP2tJSe7htOXDKB0sOYzsO5A725ERye0RKfgMY7TRG0vq9tIxB7ydSykxVAGglKHDwl/6mn5DNUfRJKep0nzpJXIOz+BiE6tTRxYMeRkUsI2WLPnPC3Ltu2Xl0u3iOoWaDfdD0Ox9XjOoUiZRQ+fUfAGTnEZ+Lg==", + "deploy": 30 } } diff --git a/tests/integration/features/beta.feature b/tests/integration/features/beta.feature index 62cb5a6a..8596bb03 100644 --- a/tests/integration/features/beta.feature +++ b/tests/integration/features/beta.feature @@ -555,18 +555,18 @@ Feature: Testing the update scenario of beta releases And the installation mtime is "11" When The request is sent Then The response is non-empty - And Update to version "30.0.0.13" is available - And URL to download is "https://download.nextcloud.com/server/prereleases/nextcloud-30.0.0rc5.zip" + And Update to version "30.0.0.14" is available + And URL to download is "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip" And URL to documentation is "https://docs.nextcloud.com/server/30/admin_manual/maintenance/upgrade.html" And EOL is set to "0" And The signature is """ - sCkQx6CgJezLvF87Nkdtx83qLvW6Lnj+U6Lz0lKZocn1E957y/pnkUmWXs4FU33n - 4tW9b6PGQJTCkP0jWqN7tEc80VII2ZrCESOzI3F8uQDYqoVWeOLxP7gYorXEh+oY - Fp5NU9eIsfipcH0AMGtBtuFy1+1mYeSfSMoFl5E/7CPaOQksD9MS4NRtQ6TYfK7L - W0yoo+NGcf9WGQ75z4g1p7l7+5tvpQ2a794Bg0eIIZePNUrJ/puqJ53x7nQ2d41U - qjIENY7lso6I1X+ggz2tFegXab7cRP0uUIelgOJMV9rPZIGfqMwmj5gWlcr1a847 - /V2ry0elGhEPZAqn9zzBuw== + QjU8BAz/b+ZSv1CFaom3VHE5IbT8giQgJ6/N00jPnWlRD8daXIsmIoLRe9UMl1yi + hTRRW3r7MQCa6RklmtZIAxsoRYlk7eEdbogKTODLRe9gsXdXF2KFisADl6bcEw1H + MLyVf7ncFnFlp9GYwpUEcGvJAzIcckkGTmBHAMTfmpSNQoijzdCP9ytKP2tJSe7h + tOXDKB0sOYzsO5A725ERye0RKfgMY7TRG0vq9tIxB7ydSykxVAGglKHDwl/6mn5D + NUfRJKep0nzpJXIOz+BiE6tTRxYMeRkUsI2WLPnPC3Ltu2Xl0u3iOoWaDfdD0Ox9 + XjOoUiZRQ+fUfAGTnEZ+Lg== """ Scenario: Updating Nextcloud 30 on the beta channel @@ -576,16 +576,16 @@ Feature: Testing the update scenario of beta releases And the installation mtime is "11" When The request is sent Then The response is non-empty - And Update to version "30.0.0.13" is available - And URL to download is "https://download.nextcloud.com/server/prereleases/nextcloud-30.0.0rc5.zip" + And Update to version "30.0.0.14" is available + And URL to download is "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip" And URL to documentation is "https://docs.nextcloud.com/server/30/admin_manual/maintenance/upgrade.html" And EOL is set to "0" And The signature is """ - sCkQx6CgJezLvF87Nkdtx83qLvW6Lnj+U6Lz0lKZocn1E957y/pnkUmWXs4FU33n - 4tW9b6PGQJTCkP0jWqN7tEc80VII2ZrCESOzI3F8uQDYqoVWeOLxP7gYorXEh+oY - Fp5NU9eIsfipcH0AMGtBtuFy1+1mYeSfSMoFl5E/7CPaOQksD9MS4NRtQ6TYfK7L - W0yoo+NGcf9WGQ75z4g1p7l7+5tvpQ2a794Bg0eIIZePNUrJ/puqJ53x7nQ2d41U - qjIENY7lso6I1X+ggz2tFegXab7cRP0uUIelgOJMV9rPZIGfqMwmj5gWlcr1a847 - /V2ry0elGhEPZAqn9zzBuw== + QjU8BAz/b+ZSv1CFaom3VHE5IbT8giQgJ6/N00jPnWlRD8daXIsmIoLRe9UMl1yi + hTRRW3r7MQCa6RklmtZIAxsoRYlk7eEdbogKTODLRe9gsXdXF2KFisADl6bcEw1H + MLyVf7ncFnFlp9GYwpUEcGvJAzIcckkGTmBHAMTfmpSNQoijzdCP9ytKP2tJSe7h + tOXDKB0sOYzsO5A725ERye0RKfgMY7TRG0vq9tIxB7ydSykxVAGglKHDwl/6mn5D + NUfRJKep0nzpJXIOz+BiE6tTRxYMeRkUsI2WLPnPC3Ltu2Xl0u3iOoWaDfdD0Ox9 + XjOoUiZRQ+fUfAGTnEZ+Lg== """ diff --git a/tests/integration/features/stable.feature b/tests/integration/features/stable.feature index a42dae0e..9096d7e1 100644 --- a/tests/integration/features/stable.feature +++ b/tests/integration/features/stable.feature @@ -609,3 +609,45 @@ Feature: Testing the update scenario of stable releases 4g/zRSuGF2eC+fmIPDCg/vL53kDNC9eWHzRCJ7EjY/VQ4NACdC3wZtvKAmnw2YqK EgIWmVloS4eF/VjQ11MOJw== """ + + Scenario: Updating Nextcloud 29 to 30 on the stable channel + Given There is a release with channel "stable" + And The received version is "29.0.7.1" + And The received PHP version is "8.1.0" + And the installation mtime is "11" + When The request is sent + Then The response is non-empty + And Update to version "30.0.0.14" is available + And URL to download is "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip" + And URL to documentation is "https://docs.nextcloud.com/server/30/admin_manual/maintenance/upgrade.html" + And EOL is set to "0" + And The signature is + """ + QjU8BAz/b+ZSv1CFaom3VHE5IbT8giQgJ6/N00jPnWlRD8daXIsmIoLRe9UMl1yi + hTRRW3r7MQCa6RklmtZIAxsoRYlk7eEdbogKTODLRe9gsXdXF2KFisADl6bcEw1H + MLyVf7ncFnFlp9GYwpUEcGvJAzIcckkGTmBHAMTfmpSNQoijzdCP9ytKP2tJSe7h + tOXDKB0sOYzsO5A725ERye0RKfgMY7TRG0vq9tIxB7ydSykxVAGglKHDwl/6mn5D + NUfRJKep0nzpJXIOz+BiE6tTRxYMeRkUsI2WLPnPC3Ltu2Xl0u3iOoWaDfdD0Ox9 + XjOoUiZRQ+fUfAGTnEZ+Lg== + """ + + Scenario: Updating Nextcloud 30 on the stable channel + Given There is a release with channel "stable" + And The received version is "30.0.0.1" + And The received PHP version is "8.1.0" + And the installation mtime is "11" + When The request is sent + Then The response is non-empty + And Update to version "30.0.0.14" is available + And URL to download is "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip" + And URL to documentation is "https://docs.nextcloud.com/server/30/admin_manual/maintenance/upgrade.html" + And EOL is set to "0" + And The signature is + """ + QjU8BAz/b+ZSv1CFaom3VHE5IbT8giQgJ6/N00jPnWlRD8daXIsmIoLRe9UMl1yi + hTRRW3r7MQCa6RklmtZIAxsoRYlk7eEdbogKTODLRe9gsXdXF2KFisADl6bcEw1H + MLyVf7ncFnFlp9GYwpUEcGvJAzIcckkGTmBHAMTfmpSNQoijzdCP9ytKP2tJSe7h + tOXDKB0sOYzsO5A725ERye0RKfgMY7TRG0vq9tIxB7ydSykxVAGglKHDwl/6mn5D + NUfRJKep0nzpJXIOz+BiE6tTRxYMeRkUsI2WLPnPC3Ltu2Xl0u3iOoWaDfdD0Ox9 + XjOoUiZRQ+fUfAGTnEZ+Lg== + """