mirror of
https://github.com/icewind1991/nextcloud-version-matrix.git
synced 2026-10-01 04:24:06 +02:00
perf(versions): Hardcode known PHP versions and Nextcloud PHP version ranges
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
a4b58a294b
commit
b7b0de6f6b
1 changed files with 38 additions and 0 deletions
|
|
@ -9,11 +9,40 @@ import {HttpClient} from '@actions/http-client'
|
|||
|
||||
const client = new HttpClient('nextcloud-version-matrix')
|
||||
|
||||
// Known PHP version ranges of the stable branches of nextcloud/server.
|
||||
// Values match what parsing lib/versioncheck.php of the branch would yield.
|
||||
const KNOWN_PHP_VERSION_RANGES = {
|
||||
stable22: {min: 7.3, max: 8.0},
|
||||
stable23: {min: 7.3, max: 8.0},
|
||||
stable24: {min: 7.4, max: 8.1},
|
||||
stable25: {min: 7.4, max: 8.1},
|
||||
stable26: {min: 8.0, max: 8.2},
|
||||
stable27: {min: 8.0, max: 8.2},
|
||||
stable28: {min: 8.0, max: 8.3},
|
||||
stable29: {min: 8.0, max: 8.3},
|
||||
stable30: {min: 8.1, max: 8.3},
|
||||
stable31: {min: 8.1, max: 8.4},
|
||||
stable32: {min: 8.1, max: 8.4},
|
||||
stable33: {min: 8.2, max: 8.5},
|
||||
stable34: {min: 8.2, max: 8.5},
|
||||
stable35: {min: 8.3, max: 8.5},
|
||||
};
|
||||
|
||||
// PHP versions known to have a php-src release tag.
|
||||
const KNOWN_RELEASED_PHP_VERSIONS = new Set([
|
||||
'7.0', '7.1', '7.2', '7.3', '7.4',
|
||||
'8.0', '8.1', '8.2', '8.3', '8.4', '8.5',
|
||||
]);
|
||||
|
||||
function versionHashBranch(version) {
|
||||
return urlExist(`https://github.com/nextcloud/server/tree/stable${version}`);
|
||||
}
|
||||
|
||||
async function getBranch(version) {
|
||||
if (KNOWN_PHP_VERSION_RANGES[`stable${version}`]) {
|
||||
return `stable${version}`;
|
||||
}
|
||||
|
||||
if (await versionHashBranch(version)) {
|
||||
return `stable${version}`;
|
||||
} else {
|
||||
|
|
@ -26,6 +55,10 @@ function range(from, to) {
|
|||
}
|
||||
|
||||
async function getSupportedVersions(branch) {
|
||||
if (KNOWN_PHP_VERSION_RANGES[branch]) {
|
||||
return {...KNOWN_PHP_VERSION_RANGES[branch]};
|
||||
}
|
||||
|
||||
// yes, this is hacky, but it saves having to keep a list updated
|
||||
let res = await client.get(`https://raw.githubusercontent.com/nextcloud/server/${branch}/lib/versioncheck.php`);
|
||||
let versionCheckCode = await res.readBody();
|
||||
|
|
@ -47,6 +80,11 @@ function parseVersionId(raw) {
|
|||
}
|
||||
|
||||
async function isPhpVersionReleased(version) {
|
||||
const shortVersion = version.toFixed(1);
|
||||
if (KNOWN_RELEASED_PHP_VERSIONS.has(shortVersion)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return await urlExist(`https://github.com/php/php-src/releases/tag/php-${version.toFixed(1)}.0`);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue