sccache 0.7.5 errors with 'increment compilation is prohibited'
when CARGO_INCREMENTAL=1. Keep at 0 and rely on the fixed
touch-only-changed-files logic to preserve sccache cache hits.
- CARGO_INCREMENTAL=1 enables sccache to cache Rust compilations
(was 0, making all compilations non-cacheable)
- Only touch files that changed between old and new rev
(was touching ALL files, invalidating entire sccache cache)
- Use git pull --rebase to avoid merge conflicts in CI
- Fix YAML parse error (line 29 colon issue) with proper indentation
- Remove git reset --hard and git clean -fd that invalidated sccache cache
- CARGO_INCREMENTAL=0 as env var in CI only (dev keeps incremental=true)
- .cargo/config.toml keeps incremental default for dev sccache benefit
- rustc-wrapper = "sccache" for faster rebuilds
- jobs = 6 for parallel compilation
- linker = "clang" with mold for faster linking
This ensures all developers and CI use the same optimized build settings.
Run: cargo build -p botserver --bin botserver
- Criado serviço systemd para forgejo-runner como gbuser
- Removido runner root antigo
- Todas permissões de /opt/gbo/work agora são gbuser:gbuser
- Fim dos erros de permissão no cache do sccache
- Fixes 'rustup could not choose a version of cargo' error
- Sets stable toolchain as default before cargo build
- Preserves sccache configuration and workspace cache
- Remove configuração automática do ~/.cargo/config.toml
- O workspace já tem .cargo/config.toml que sobrescreve o global
- Devs só precisam rodar ./DEV-DEPENDENCIES.sh para instalar mold/lld/clang
- Config do projeto (./.cargo/config.toml) é usado automaticamente
- Detecta automaticamente o home do usuário atual
- Substitui /home/gbuser hardcoded por $USER_HOME
- Funciona em qualquer máquina (dev local, CI, etc)
- Adiciona .cargo/config.toml com configuração de linker
- Usa clang + lld para linkagem 30-40% mais rápida
- Adiciona sccache para cache de compilação
- Remove comentários do workflow CI
- Ganho total esperado: 17min → 2-5min (incremental)
- Adiciona 'export RUSTC_WRAPPER=sccache' no passo de build
- Adiciona sccache --show-stats antes e depois do build para monitorar cache
- Workflow agora usa sccache corretamente para builds incrementais
- Ganho esperado: 17min → 2-5min (após 1º build)
- Adiciona função configure_cargo() que cria ~/.cargo/config.toml
- Configura linker clang + lld para linkagem rápida
- Reduz tempo de link em ~30-40%
- Aplica para todas as máquinas de desenvolvimento
- Corrigir RUSTC_WRAPPER para usar sccache corretamente
- Corrigir caminho do binary para /opt/gbo/work/target/debug
- Usar hostname 'system' ao invés de IP
- Adicionar comentários sobre features padrão
- Remover killall redundante (systemctl já para)
- Manter features padrão otimizadas (sem ooxmlsdk)
Features padrão já são eficientes:
- chat, automation, cache, llm, vectordb, crawler, drive, directory, kb-extraction
- ooxmlsdk NÃO incluído (apenas em docs feature opcional)
- Economia com sccache: 17min → 2-5min (incremental)