From e5789b6d2beb3c205d8520adb627bfb7974a11eb Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Thu, 24 Feb 2022 10:20:13 +0100 Subject: [PATCH 1/2] Automatically check for updates only once --- .../browser/arduino-frontend-contribution.tsx | 2 +- .../browser/ide-updater/ide-updater-commands.ts | 4 ++-- .../src/common/protocol/ide-updater.ts | 2 +- .../ide-updater/ide-updater-impl.ts | 16 ++++++++++++---- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx index 7b0184bdd..f4ebbb2f6 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx +++ b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx @@ -282,7 +282,7 @@ export class ArduinoFrontendContribution this.updaterService.init( this.arduinoPreferences.get('arduino.ide.updateChannel') ); - this.updater.checkForUpdates().then(async (updateInfo) => { + this.updater.checkForUpdates(true).then(async (updateInfo) => { if (!updateInfo) return; const versionToSkip = await this.localStorageService.getData( SKIP_IDE_VERSION diff --git a/arduino-ide-extension/src/browser/ide-updater/ide-updater-commands.ts b/arduino-ide-extension/src/browser/ide-updater/ide-updater-commands.ts index 3450e9b1b..3e67514f0 100644 --- a/arduino-ide-extension/src/browser/ide-updater/ide-updater-commands.ts +++ b/arduino-ide-extension/src/browser/ide-updater/ide-updater-commands.ts @@ -31,8 +31,8 @@ export class IDEUpdaterCommands implements CommandContribution { }); } - async checkForUpdates(): Promise { - return await this.updater.checkForUpdates(); + async checkForUpdates(initialCheck?: boolean): Promise { + return await this.updater.checkForUpdates(initialCheck); } async downloadUpdate(): Promise { diff --git a/arduino-ide-extension/src/common/protocol/ide-updater.ts b/arduino-ide-extension/src/common/protocol/ide-updater.ts index 2cc874471..f7fdc96ac 100644 --- a/arduino-ide-extension/src/common/protocol/ide-updater.ts +++ b/arduino-ide-extension/src/common/protocol/ide-updater.ts @@ -47,7 +47,7 @@ export const IDEUpdaterPath = '/services/ide-updater'; export const IDEUpdater = Symbol('IDEUpdater'); export interface IDEUpdater extends JsonRpcServer { init(channel: UpdateChannel): void; - checkForUpdates(): Promise; + checkForUpdates(initialCheck?: boolean): Promise; downloadUpdate(): Promise; quitAndInstall(): void; stopDownload(): void; diff --git a/arduino-ide-extension/src/electron-main/ide-updater/ide-updater-impl.ts b/arduino-ide-extension/src/electron-main/ide-updater/ide-updater-impl.ts index 88e3bea1f..06e840999 100644 --- a/arduino-ide-extension/src/electron-main/ide-updater/ide-updater-impl.ts +++ b/arduino-ide-extension/src/electron-main/ide-updater/ide-updater-impl.ts @@ -12,12 +12,13 @@ const IDE_DOWNLOAD_BASE_URL = 'https://downloads.arduino.cc/arduino-ide'; @injectable() export class IDEUpdaterImpl implements IDEUpdater { + private isAlreadyChecked = false; private updater = autoUpdater; private cancellationToken?: CancellationToken; protected theiaFEClient?: IDEUpdaterClient; protected clients: Array = []; - init(channel: UpdateChannel) { + init(channel: UpdateChannel): void { this.updater.autoDownload = false; this.updater.channel = channel; this.updater.setFeedURL({ @@ -52,9 +53,16 @@ export class IDEUpdaterImpl implements IDEUpdater { if (client) this.clients.push(client); } - async checkForUpdates(): Promise { - const { updateInfo, cancellationToken } = - await this.updater.checkForUpdates(); + async checkForUpdates(initialCheck?: boolean): Promise { + if (initialCheck) { + if (this.isAlreadyChecked) return Promise.resolve(); + this.isAlreadyChecked = true; + } + + const { + updateInfo, + cancellationToken, + } = await this.updater.checkForUpdates(); this.cancellationToken = cancellationToken; if (this.updater.currentVersion.compare(updateInfo.version) === -1) { From 489d4a83b6531f3b7bcb9b04221d6278749149b2 Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Thu, 24 Feb 2022 11:59:58 +0100 Subject: [PATCH 2/2] set windows version to 2019 on CI --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f6915756e..24a0b30aa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: strategy: matrix: config: - - os: windows-latest + - os: windows-2019 - os: ubuntu-18.04 # https://github.com/arduino/arduino-ide/issues/259 - os: macos-latest runs-on: ${{ matrix.config.os }}