Plano de Migração do Repositório GitHub
Estratégia de Branches e Proteção
- Manter
maincomo branch padrão. - Exigir o workflow
CIantes do merge. - Proteger
maincontra force-push. - Exigir pull requests para mudanças diretas em workflows de release e configuração de instaladores.
Workflows
ci.yml
- Executa em pushes e pull requests contra
main. - Instala Node 22, Rust stable e dependências Linux de build desktop.
- Executa:
npm ci- typecheck shared
- typecheck desktop
- testes shared
- testes desktop
- testes Rust
- build de produção desktop
- compilação de firmware
release.yml
- Dispara em tags semânticas de versão, como
v0.6.1. - Usa
tauri-apps/tauri-actionpara gerar instaladores de:- Windows
- Linux (
deb,rpm,AppImage) - macOS
- Compila o firmware Arduino separadamente e publica os artefatos na mesma release.
- Gera metadados de empacotamento Arch e publica na mesma release:
PKGBUILD+.SRCINFOpara build de source (ioruba-desktop)PKGBUILD-bin+.SRCINFO-binpara instalação baseada em AppImage (ioruba-desktop-bin)- tarball de source com checksum versionado (
ioruba-<version>.tar.gz)
Secrets e Assinatura
Para releases de teste sem assinatura, o workflow atual funciona apenas com GITHUB_TOKEN.
Para instaladores assinados em nível de produção, configure:
APPLE_CERTIFICATEAPPLE_CERTIFICATE_PASSWORDAPPLE_SIGNING_IDENTITYAPPLE_IDAPPLE_PASSWORDAPPLE_TEAM_ID- secrets de assinatura Windows se Authenticode for obrigatório
Procedimento de release
- Faça merge das mudanças validadas em
main. - Crie e publique uma tag como
v0.6.1. - Deixe
release.ymlgerar os instaladores e assets de firmware. - Verifique os bundles enviados na página do GitHub Release:
- instaladores desktop (
deb,rpm,AppImage, Windows, macOS) - artefatos de firmware
- arquivos de metadados Arch (
PKGBUILD,.SRCINFO,PKGBUILD-bin,.SRCINFO-bin, source tarball)
- instaladores desktop (
- Se for publicar no AUR, copie esses arquivos gerados para os repositórios AUR respectivos e faça push.
Automações Antigas Removidas
Esses workflows foram removidos porque estavam presos ao caminho de distribuição Haskell:
- publicação no GitHub Pages
- automação Release Please
- workflow de sync de metadados de repositório
Se Pages ainda for desejado depois, reintroduza como workflow apenas de docs, sem acoplar ao pipeline de release da aplicação.