O passo do apt levou 22 e 28 minutos em duas execuções de um dia de espelho lento (o normal é uns 35 s). O script usa os .deb em cache sem nem atualizar o índice e, sem cache, tenta até 3 vezes com tempo limite por tentativa. Vale para o CI e para o job do app desktop da release. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
31 lines
1.3 KiB
Bash
Executable File
31 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Instala as bibliotecas do Tauri no Linux do CI (WebKitGTK e afins) sem depender do espelho do
|
|
# apt estar rápido: usa os .deb em cache quando existem e, se o apt travar ou falhar, tenta de novo.
|
|
#
|
|
# O passo "Dependências do Tauri" já levou de 22 a 28 minutos num dia de espelho lento, contra
|
|
# uns 35 s no normal. Aqui cada tentativa tem tempo limite e o cache evita o download.
|
|
#
|
|
# Uso: scripts/install-tauri-deps.sh [pasta-do-cache] (padrão: ~/apt-cache)
|
|
set -euo pipefail
|
|
cache="${1:-$HOME/apt-cache}"
|
|
pkgs=(libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf)
|
|
mkdir -p "$cache/partial"
|
|
|
|
# 1) tudo em cache: instala direto, sem nem atualizar o índice do apt
|
|
if ls "$cache"/*.deb >/dev/null 2>&1 && timeout 300 sudo apt-get -o "Dir::Cache::archives=$cache" -y install "${pkgs[@]}"; then
|
|
echo "instalado a partir do cache"
|
|
exit 0
|
|
fi
|
|
|
|
# 2) sem cache (ou incompleto): atualiza e instala, até 3 tentativas com tempo limite
|
|
for tentativa in 1 2 3; do
|
|
if timeout 240 sudo apt-get update && timeout 600 sudo apt-get -o "Dir::Cache::archives=$cache" -y install "${pkgs[@]}"; then
|
|
echo "instalado (tentativa $tentativa)"
|
|
exit 0
|
|
fi
|
|
echo "apt falhou ou passou do tempo (tentativa $tentativa de 3)" >&2
|
|
sleep $((tentativa * 10))
|
|
done
|
|
echo "não foi possível instalar as dependências do Tauri" >&2
|
|
exit 1
|