1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-17 13:25:24 +03:00

Change lexical scope jenkins

This commit is contained in:
Mark Haslinghuis 2020-12-08 19:59:07 +01:00
parent 317f937fd5
commit 9b13f8a11a

View file

@ -1,6 +1,6 @@
'use strict'; 'use strict';
var JenkinsLoader = function (url) { const JenkinsLoader = function (url) {
this._url = url; this._url = url;
this._jobs = []; this._jobs = [];
this._cacheExpirationPeriod = 3600 * 1000; this._cacheExpirationPeriod = 3600 * 1000;
@ -10,23 +10,23 @@ var JenkinsLoader = function (url) {
} }
JenkinsLoader.prototype.loadJobs = function (viewName, callback) { JenkinsLoader.prototype.loadJobs = function (viewName, callback) {
var self = this; const self = this;
var viewUrl = `${self._url}/view/${viewName}`; const viewUrl = `${self._url}/view/${viewName}`;
var jobsDataTag = `${viewUrl}_JobsData`; const jobsDataTag = `${viewUrl}_JobsData`;
var cacheLastUpdateTag = `${viewUrl}_JobsLastUpdate`; const cacheLastUpdateTag = `${viewUrl}_JobsLastUpdate`;
var wrappedCallback = jobs => { const wrappedCallback = jobs => {
self._jobs = jobs; self._jobs = jobs;
callback(jobs); callback(jobs);
}; };
chrome.storage.local.get([cacheLastUpdateTag, jobsDataTag], function (result) { chrome.storage.local.get([cacheLastUpdateTag, jobsDataTag], function (result) {
var jobsDataTimestamp = $.now(); const jobsDataTimestamp = $.now();
var cachedJobsData = result[jobsDataTag]; const cachedJobsData = result[jobsDataTag];
var cachedJobsLastUpdate = result[cacheLastUpdateTag]; const cachedJobsLastUpdate = result[cacheLastUpdateTag];
var cachedCallback = () => { const cachedCallback = () => {
if (cachedJobsData) { if (cachedJobsData) {
GUI.log(i18n.getMessage('buildServerUsingCached', ['jobs'])); GUI.log(i18n.getMessage('buildServerUsingCached', ['jobs']));
} }
@ -35,18 +35,18 @@ JenkinsLoader.prototype.loadJobs = function (viewName, callback) {
}; };
if (!cachedJobsData || !cachedJobsLastUpdate || jobsDataTimestamp - cachedJobsLastUpdate > self._cacheExpirationPeriod) { if (!cachedJobsData || !cachedJobsLastUpdate || jobsDataTimestamp - cachedJobsLastUpdate > self._cacheExpirationPeriod) {
var url = `${viewUrl}${self._jobsRequest}`; const url = `${viewUrl}${self._jobsRequest}`;
$.get(url, jobsInfo => { $.get(url, jobsInfo => {
GUI.log(i18n.getMessage('buildServerLoaded', ['jobs'])); GUI.log(i18n.getMessage('buildServerLoaded', ['jobs']));
// remove Betaflight prefix, rename Betaflight job to Development // remove Betaflight prefix, rename Betaflight job to Development
var jobs = jobsInfo.jobs.map(job => { const jobs = jobsInfo.jobs.map(job => {
return { title: job.name.replace('Betaflight ', '').replace('Betaflight', 'Development'), name: job.name }; return { title: job.name.replace('Betaflight ', '').replace('Betaflight', 'Development'), name: job.name };
}) })
// cache loaded info // cache loaded info
let object = {} const object = {}
object[jobsDataTag] = jobs; object[jobsDataTag] = jobs;
object[cacheLastUpdateTag] = $.now(); object[cacheLastUpdateTag] = $.now();
chrome.storage.local.set(object); chrome.storage.local.set(object);
@ -63,18 +63,18 @@ JenkinsLoader.prototype.loadJobs = function (viewName, callback) {
} }
JenkinsLoader.prototype.loadBuilds = function (jobName, callback) { JenkinsLoader.prototype.loadBuilds = function (jobName, callback) {
var self = this; const self = this;
var jobUrl = `${self._url}/job/${jobName}`; const jobUrl = `${self._url}/job/${jobName}`;
var buildsDataTag = `${jobUrl}BuildsData`; const buildsDataTag = `${jobUrl}BuildsData`;
var cacheLastUpdateTag = `${jobUrl}BuildsLastUpdate` const cacheLastUpdateTag = `${jobUrl}BuildsLastUpdate`
chrome.storage.local.get([cacheLastUpdateTag, buildsDataTag], function (result) { chrome.storage.local.get([cacheLastUpdateTag, buildsDataTag], function (result) {
var buildsDataTimestamp = $.now(); const buildsDataTimestamp = $.now();
var cachedBuildsData = result[buildsDataTag]; const cachedBuildsData = result[buildsDataTag];
var cachedBuildsLastUpdate = result[cacheLastUpdateTag]; const cachedBuildsLastUpdate = result[cacheLastUpdateTag];
var cachedCallback = () => { const cachedCallback = () => {
if (cachedBuildsData) { if (cachedBuildsData) {
GUI.log(i18n.getMessage('buildServerUsingCached', [jobName])); GUI.log(i18n.getMessage('buildServerUsingCached', [jobName]));
} }
@ -83,22 +83,22 @@ JenkinsLoader.prototype.loadBuilds = function (jobName, callback) {
}; };
if (!cachedBuildsData || !cachedBuildsLastUpdate || buildsDataTimestamp - cachedBuildsLastUpdate > self._cacheExpirationPeriod) { if (!cachedBuildsData || !cachedBuildsLastUpdate || buildsDataTimestamp - cachedBuildsLastUpdate > self._cacheExpirationPeriod) {
var url = `${jobUrl}${self._buildsRequest}`; const url = `${jobUrl}${self._buildsRequest}`;
$.get(url, function (buildsInfo) { $.get(url, function (buildsInfo) {
GUI.log(i18n.getMessage('buildServerLoaded', [jobName])); GUI.log(i18n.getMessage('buildServerLoaded', [jobName]));
// filter successful builds // filter successful builds
var builds = buildsInfo.builds.filter(build => build.result == 'SUCCESS') const builds = buildsInfo.builds.filter(build => build.result == 'SUCCESS')
.map(build => ({ .map(build => ({
number: build.number, number: build.number,
artifacts: build.artifacts.map(artifact => artifact.relativePath), artifacts: build.artifacts.map(artifact => artifact.relativePath),
changes: build.changeSet.items.map(item => '* ' + item.msg).join('<br>\n'), changes: build.changeSet.items.map(item => `* ${item.msg}`).join('<br>\n'),
timestamp: build.timestamp timestamp: build.timestamp
})); }));
// cache loaded info // cache loaded info
let object = {} const object = {}
object[buildsDataTag] = builds; object[buildsDataTag] = builds;
object[cacheLastUpdateTag] = $.now(); object[cacheLastUpdateTag] = $.now();
chrome.storage.local.set(object); chrome.storage.local.set(object);
@ -116,30 +116,35 @@ JenkinsLoader.prototype.loadBuilds = function (jobName, callback) {
JenkinsLoader.prototype._parseBuilds = function (jobUrl, jobName, builds, callback) { JenkinsLoader.prototype._parseBuilds = function (jobUrl, jobName, builds, callback) {
// convert from `build -> targets` to `target -> builds` mapping // convert from `build -> targets` to `target -> builds` mapping
var targetBuilds = {}; const targetBuilds = {};
var targetFromFilenameExpression = /betaflight_([\d.]+)?_?(\w+)(\-.*)?\.(.*)/; const targetFromFilenameExpression = /betaflight_([\d.]+)?_?(\w+)(\-.*)?\.(.*)/;
builds.forEach(build => { builds.forEach(build => {
build.artifacts.forEach(relativePath => { build.artifacts.forEach(relativePath => {
var match = targetFromFilenameExpression.exec(relativePath); const match = targetFromFilenameExpression.exec(relativePath);
if (!match) { if (!match) {
return; return;
} }
var version = match[1]; const version = match[1];
var target = match[2]; const target = match[2];
var date = new Date(build.timestamp); const date = new Date(build.timestamp);
var formattedDate = ("0" + date.getDate()).slice(-2) + "-" + ("0" + (date.getMonth()+1)).slice(-2) + "-" + const day = (`0${date.getDate()}`).slice(-2);
date.getFullYear() + " " + ("0" + date.getHours()).slice(-2) + ":" + ("0" + date.getMinutes()).slice(-2); const month = (`0${(date.getMonth() + 1)}`).slice(-2);
const year = date.getFullYear();
const hours = (`0${date.getHours()}`).slice(-2);
const minutes = (`0${date.getMinutes()}`).slice(-2);
var descriptor = { const formattedDate = `${day}-${month}-${year} ${hours}:${minutes}`;
'releaseUrl': jobUrl + '/' + build.number,
'name' : jobName + ' #' + build.number, const descriptor = {
'version' : version + ' #' + build.number, 'releaseUrl': `${jobUrl}/${build.number}`,
'url' : jobUrl + '/' + build.number + '/artifact/' + relativePath, 'name' : `${jobName} #${build.number}`,
'version' : `${version} #${build.number}`,
'url' : `${jobUrl}/${build.number}/artifact/${relativePath}`,
'file' : relativePath.split('/').slice(-1)[0], 'file' : relativePath.split('/').slice(-1)[0],
'target' : target, 'target' : target,
'date' : formattedDate, 'date' : formattedDate,