1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-13 11:29:53 +03:00

Do a bit of grouping of nightly releases.

This commit is contained in:
Marcelo Bezerra 2025-01-27 00:15:52 +01:00
parent 8489567c5c
commit c1b34356c2

View file

@ -56,11 +56,25 @@ TABS.firmware_flasher.initialize = function (callback) {
worker.postMessage(str); worker.postMessage(str);
} }
function getReleaseMajor(releaseName) {
// "name":"inav-9.0.0-dev-20250124-28-d1ef85e82d8aa5bb8b85e518893c8e4f6ab61d6e"
var releaseNameExpression = /^inav-(\d+)([\d.]+)-(ci|dev)-(\d{4})(\d{2})(\d{2})-(\d+)-(\w+)$/;
var match = releaseNameExpression.exec(releaseName);
if(!match) {
console.log(releaseName + " not matched");
//alert(releaseName);
return 0;
}
return match[1];
}
function parseDevFilename(filename) { function parseDevFilename(filename) {
//var targetFromFilenameExpression = /inav_([\d.]+)?_?([^.]+)\.(.*)/; //var targetFromFilenameExpression = /inav_([\d.]+)?_?([^.]+)\.(.*)/;
// inav_8.0.0_TUNERCF405_dev-20240617-88fb1d0.hex // inav_8.0.0_TUNERCF405_dev-20240617-88fb1d0.hex
// inav_8.0.0_TUNERCF405_ci-20240617-88fb1d0.hex // inav_8.0.0_TUNERCF405_ci-20240617-88fb1d0.hex
var targetFromFilenameExpression = /^inav_([\d.]+)_([A-Z0-9_]+)_(ci|dev)-(\d{4})(\d{2})(\d{2})-(\w+)\.(hex)$/; var targetFromFilenameExpression = /^inav_(\d+)([\d.]+)_([A-Za-z0-9_]+)_(ci|dev)-(\d{4})(\d{2})(\d{2})-(\w+)\.(hex)$/;
var match = targetFromFilenameExpression.exec(filename); var match = targetFromFilenameExpression.exec(filename);
if (!match) { if (!match) {
@ -69,9 +83,11 @@ TABS.firmware_flasher.initialize = function (callback) {
} }
return { return {
raw_target: match[2], raw_target: match[3],
target: match[2].replace("_", " "), target: match[3].replace("_", " "),
format: match[8], format: match[9],
version: match[1]+match[2],
major: match[1]
}; };
} }
@ -151,14 +167,12 @@ TABS.firmware_flasher.initialize = function (callback) {
}); });
if (showDevReleases) { if (showDevReleases) {
var majorCount = {};
TABS.firmware_flasher.devReleasesData.forEach(function (release) { TABS.firmware_flasher.devReleasesData.forEach(function (release) {
release.assets.forEach(function (asset) { release.assets.forEach(function (asset) {
var result = parseDevFilename(asset.name); var result = parseDevFilename(asset.name);
if ((!showDevReleases && release.prerelease) || !result) { if (result && $.inArray(result.target, unsortedTargets) == -1) {
return;
}
if ($.inArray(result.target, unsortedTargets) == -1) {
unsortedTargets.push(result.target); unsortedTargets.push(result.target);
} }
}); });
@ -212,8 +226,20 @@ TABS.firmware_flasher.initialize = function (callback) {
}); });
}); });
if(showDevReleases) { if(showDevReleases && TABS.firmware_flasher.devReleasesData) {
var majorCount = {};
TABS.firmware_flasher.devReleasesData.forEach(function(release){ TABS.firmware_flasher.devReleasesData.forEach(function(release){
var major = getReleaseMajor(release.name);
if (!(major in majorCount)) {
majorCount[major] = 0;
}
if(majorCount[major] >= 10) {
return;
}
majorCount[major]++;
var versionFromTagExpression = /v?(.*)/; var versionFromTagExpression = /v?(.*)/;
var matchVersionFromTag = versionFromTagExpression.exec(release.tag_name); var matchVersionFromTag = versionFromTagExpression.exec(release.tag_name);
@ -278,7 +304,7 @@ TABS.firmware_flasher.initialize = function (callback) {
return; return;
}; };
$.get('https://api.github.com/repos/iNavFlight/inav-nightly/releases?per_page=10', function(releasesData) { $.get('https://api.github.com/repos/iNavFlight/inav-nightly/releases?per_page=50', function(releasesData) {
TABS.firmware_flasher.devReleasesData = releasesData; TABS.firmware_flasher.devReleasesData = releasesData;
}).fail(function (data){ }).fail(function (data){
TABS.firmware_flasher.devReleasesData = {}; TABS.firmware_flasher.devReleasesData = {};