ElectronJs — Configurando auto-update

Olá Gente!
No tutorial anterior aprendemos a compilar nossa aplicação criada em ElectronJs utilizando o Github Action e criar um release com a compilação.
Hoje iremos configurar para que nossa aplicação atualize automaticamente sempre que um novo release for criado.
Em minha aplicação utilizo o Electron Forge para facilitar as ações, recomendo muito a utilização:
Não precisamos instalar nada adicional, o próprio ElectronJs já possui os recursos para configurar o AutoUpdate.
Para identificar as novas versões iremos utilizar o https://update.electronjs.org/ que busca as versões com base nos release.
Dentro de nosso arquivo main.js carrega o “autoUpdater” e o “Notification” do repositório “electron”:
import { Notification, autoUpdater } from 'electron';Agora iremos configurar uma função para facilitar as ações de AutoUpdate:
function setupUpdate()
{
const FeedUrl = 'https://update.electronjs.org/[UsuarioGit]/[RepositorioGit]/' + process.platform + '-' + process.arch + '/' + app.getVersion();
try {
autoUpdater.setFeedURL(FeedUrl)
autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName, releaseDate, updateURL) => {
const dialogOpts = {
type: 'info',
buttons: ['Reiniciar Agora', 'Reiniciar Depois'],
title: 'Atualização Automática',
message: process.platform === 'win32' ? releaseNotes : releaseName,
detail: 'Uma nova versão do Aplicativo foi Instalada. Reinicie o Aplicativo para iniciar a nova versão'
};
dialog.showMessageBox(dialogOpts).then(({ response }) => {
if(response === 0)
{
autoUpdater.quitAndInstall();
}
})
});
autoUpdater.checkForUpdates()
setInterval(() => {
autoUpdater.checkForUpdates()
}, ( 1 * 60 * 60 * 1000 ))
}catch (err){
//
}
}Aqui precisamos antes configurar a variável FeedUrl, que é a Url de onde serão checadas as atualizações.
Neste link:
- [UsuarioGit]: Seu usuário do GitHub
- [RepositorioGit]: O nome do repositório no GitHub
Podemos também alterar o tempo de checagem, no “setInterval”.
Para este exemplo, esta configurado para 1 hora:
1 * 60 * 60 * 1000Agora iremos colocar a chamada desta função dentro do evento “ready”:
app.on('ready', () => {
setupUpdate();
});Por hoje é isto, queridos desenvolvedores! 👩💼
Até logo! 👋
Leia também
GitHub Actions: compilando Electron para 3 sistemas
Um workflow que compila seu app Electron para Windows, macOS e Linux a cada tag: os 6 erros reais que apareceram no caminho e como resolvi cada um.
Electron: transformando um site React em app desktop
Como empacotei uma SPA React em um app Electron: protocolo app://, proxy de API, preload seguro e os bugs que ninguém documenta.
Auto-update no Electron com GitHub Actions
Publicando o build do GitHub Actions e fazendo o app se atualizar sozinho, inclusive com repositorio privado.


