Skip to content

Commit a476770

Browse files
authored
Merge pull request #2328 from iNavFlight/mmosca-group-nitghlies
Group nightly releases and limit to 10 nightlies per major
2 parents 8489567 + c1b3435 commit a476770

File tree

1 file changed

+36
-10
lines changed

1 file changed

+36
-10
lines changed

tabs/firmware_flasher.js

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,25 @@ TABS.firmware_flasher.initialize = function (callback) {
5656
worker.postMessage(str);
5757
}
5858

59+
function getReleaseMajor(releaseName) {
60+
// "name":"inav-9.0.0-dev-20250124-28-d1ef85e82d8aa5bb8b85e518893c8e4f6ab61d6e"
61+
var releaseNameExpression = /^inav-(\d+)([\d.]+)-(ci|dev)-(\d{4})(\d{2})(\d{2})-(\d+)-(\w+)$/;
62+
var match = releaseNameExpression.exec(releaseName);
63+
64+
if(!match) {
65+
console.log(releaseName + " not matched");
66+
//alert(releaseName);
67+
return 0;
68+
}
69+
70+
return match[1];
71+
}
72+
5973
function parseDevFilename(filename) {
6074
//var targetFromFilenameExpression = /inav_([\d.]+)?_?([^.]+)\.(.*)/;
6175
// inav_8.0.0_TUNERCF405_dev-20240617-88fb1d0.hex
6276
// inav_8.0.0_TUNERCF405_ci-20240617-88fb1d0.hex
63-
var targetFromFilenameExpression = /^inav_([\d.]+)_([A-Z0-9_]+)_(ci|dev)-(\d{4})(\d{2})(\d{2})-(\w+)\.(hex)$/;
77+
var targetFromFilenameExpression = /^inav_(\d+)([\d.]+)_([A-Za-z0-9_]+)_(ci|dev)-(\d{4})(\d{2})(\d{2})-(\w+)\.(hex)$/;
6478
var match = targetFromFilenameExpression.exec(filename);
6579

6680
if (!match) {
@@ -69,9 +83,11 @@ TABS.firmware_flasher.initialize = function (callback) {
6983
}
7084

7185
return {
72-
raw_target: match[2],
73-
target: match[2].replace("_", " "),
74-
format: match[8],
86+
raw_target: match[3],
87+
target: match[3].replace("_", " "),
88+
format: match[9],
89+
version: match[1]+match[2],
90+
major: match[1]
7591
};
7692
}
7793

@@ -151,14 +167,12 @@ TABS.firmware_flasher.initialize = function (callback) {
151167
});
152168

153169
if (showDevReleases) {
170+
var majorCount = {};
154171
TABS.firmware_flasher.devReleasesData.forEach(function (release) {
155172
release.assets.forEach(function (asset) {
156173
var result = parseDevFilename(asset.name);
157174

158-
if ((!showDevReleases && release.prerelease) || !result) {
159-
return;
160-
}
161-
if ($.inArray(result.target, unsortedTargets) == -1) {
175+
if (result && $.inArray(result.target, unsortedTargets) == -1) {
162176
unsortedTargets.push(result.target);
163177
}
164178
});
@@ -212,8 +226,20 @@ TABS.firmware_flasher.initialize = function (callback) {
212226
});
213227
});
214228

215-
if(showDevReleases) {
229+
if(showDevReleases && TABS.firmware_flasher.devReleasesData) {
230+
var majorCount = {};
216231
TABS.firmware_flasher.devReleasesData.forEach(function(release){
232+
var major = getReleaseMajor(release.name);
233+
234+
if (!(major in majorCount)) {
235+
majorCount[major] = 0;
236+
}
237+
238+
if(majorCount[major] >= 10) {
239+
return;
240+
}
241+
242+
majorCount[major]++;
217243

218244
var versionFromTagExpression = /v?(.*)/;
219245
var matchVersionFromTag = versionFromTagExpression.exec(release.tag_name);
@@ -278,7 +304,7 @@ TABS.firmware_flasher.initialize = function (callback) {
278304
return;
279305
};
280306

281-
$.get('https://api.github.com/repos/iNavFlight/inav-nightly/releases?per_page=10', function(releasesData) {
307+
$.get('https://api.github.com/repos/iNavFlight/inav-nightly/releases?per_page=50', function(releasesData) {
282308
TABS.firmware_flasher.devReleasesData = releasesData;
283309
}).fail(function (data){
284310
TABS.firmware_flasher.devReleasesData = {};

0 commit comments

Comments
 (0)