-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathubuntu.sh
More file actions
89 lines (74 loc) · 3.6 KB
/
Copy pathubuntu.sh
File metadata and controls
89 lines (74 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/bin/bash
#
# Crossbar Development Environment - Ubuntu 24.04 LTS (CORRIGIDO)
#
export DEBIAN_FRONTEND=noninteractive
# 1. Dependências Completas (Incluindo Java para o sdkmanager e libs do Crossbar)
sudo apt-get update -qq >/dev/null 2>&1
sudo apt-get install -y -qq \
git \
curl \
unzip \
xz-utils \
zip \
pkg-config \
libgtk-3-dev \
libayatana-appindicator3-dev \
libsecret-1-dev \
libkeybinder-3.0-dev \
cmake \
clang \
ninja-build \
libglu1-mesa \
lcov \
bc \
openjdk-17-jdk \
>/dev/null 2>&1
# Configurar JAVA_HOME para esta sessão (crítico para o sdkmanager funcionar abaixo)
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
export PATH=$PATH:$JAVA_HOME/bin
# 2. Flutter 3.38.3 (Versão exata do CI)
cd ~
rm -rf flutter
git config --global http.postBuffer 1048576000 >/dev/null 2>&1
# Tenta clonar a tag específica 3.38.3
timeout 900 git clone https://github.com/flutter/flutter.git -b 3.38.3 --depth 1 >/dev/null 2>&1 || \
timeout 900 git clone https://github.com/flutter/flutter.git -b stable --depth 1 >/dev/null 2>&1
echo 'export PATH="$HOME/flutter/bin:$PATH"' >> ~/.bashrc
export PATH="$HOME/flutter/bin:$PATH"
# 3. Precache
flutter precache --linux --android >/dev/null 2>&1
# 4. Android SDK CLI (LATEST)
mkdir -p ~/Android/Sdk/cmdline-tools
cd ~/Android/Sdk/cmdline-tools
# Limpeza preventiva
rm -rf latest commandlinetools-linux-*
wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip >/dev/null 2>&1
unzip -q commandlinetools-linux-11076708_latest.zip >/dev/null 2>&1
mv cmdline-tools latest
rm commandlinetools-linux-11076708_latest.zip >/dev/null 2>&1
# 5. Configurar variáveis Android
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
# Adicionar ao .bashrc (com verificação para não duplicar se rodar 2x)
grep -q "ANDROID_HOME" ~/.bashrc || echo 'export ANDROID_HOME=$HOME/Android/Sdk' >> ~/.bashrc
grep -q "cmdline-tools/latest/bin" ~/.bashrc || echo 'export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH' >> ~/.bashrc
grep -q "platform-tools" ~/.bashrc || echo 'export PATH=$ANDROID_HOME/platform-tools:$PATH' >> ~/.bashrc
grep -q "JAVA_HOME" ~/.bashrc || echo "export JAVA_HOME=$JAVA_HOME" >> ~/.bashrc
# 6. Instalar Componentes Android (Requer Java funcionando)
yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses >/dev/null 2>&1
$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-35" "build-tools;35.0.0" >/dev/null 2>&1
# 7. Aceitar licenças do Flutter (Requer Android SDK pronto)
yes | flutter doctor --android-licenses >/dev/null 2>&1
# 8. GitHub CLI (gh)
type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update >/dev/null 2>&1 \
&& sudo apt install gh -y >/dev/null 2>&1
# 9. act (Local GitHub Actions)
# Optamos pelo binário direto para não depender de 'gh auth login' neste script
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash >/dev/null 2>&1
echo "Setup concluído! Execute 'source ~/.bashrc' ou reinicie o terminal."