Files
bytechat-desktop/.gitea/workflows/compile.yaml
T
rattatwinko fb57f49d45
Build Tauri App (Linux + Windows + Android) / build (push) Failing after 10m48s
fix
2025-09-01 02:49:29 +02:00

176 lines
5.5 KiB
YAML

name: Build Tauri App (Linux + Windows + Android)
on:
push:
branches: [ main ]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
# 1️⃣ Checkout repository
- name: Checkout repository
uses: actions/checkout@v3
# 2️⃣ Install Rust
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
# 3️⃣ Install Linux dependencies
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
mingw-w64 \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
webkit2gtk-4.1 \
build-essential \
curl \
pkg-config \
xdg-utils \
gnupg2 \
unzip \
wget
# 4️⃣ Setup Java
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
# 5️⃣ Install Android SDK & NDK
- name: Install Android SDK & NDK
run: |
ANDROID_SDK="$HOME/Android/Sdk"
mkdir -p "$ANDROID_SDK/cmdline-tools"
cd "$ANDROID_SDK/cmdline-tools"
# Download command-line tools
wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -O cmdline-tools.zip
unzip -q cmdline-tools.zip
mv cmdline-tools latest || mv tools latest
export ANDROID_SDK_ROOT="$ANDROID_SDK"
export PATH="$ANDROID_SDK/cmdline-tools/latest/bin:$ANDROID_SDK/platform-tools:$PATH"
yes | sdkmanager --licenses || true
sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.2" "ndk;25.2.9519653"
env:
ANDROID_HOME: ${{ github.home }}/Android/Sdk
ANDROID_SDK_ROOT: ${{ github.home }}/Android/Sdk
# 6️⃣ Add Windows Rust target
- name: Add Windows Rust target
run: rustup target add x86_64-pc-windows-gnu
# 7️⃣ Install Tauri CLI
- name: Install Tauri CLI
run: cargo install tauri-cli
# 8️⃣ Initialize Android project
- name: Initialize Tauri Android project
run: |
cd src-tauri
cargo tauri android init
# 9️⃣ Build Android APK (Debug)
- name: Build Android Debug APK
run: |
cd src-tauri/gen/android
./gradlew assembleDebug
# 🔟 Build Android Release APK
- name: Build Android Release APK
run: |
cd src-tauri/gen/android
./gradlew assembleRelease
# 1️⃣1️⃣ Build Linux packages
- name: Build Linux packages (deb + rpm)
run: |
cd src-tauri
cargo tauri build
# 1️⃣2️⃣ Build Windows exe
- name: Build Windows exe
run: |
cd src-tauri
cargo build --release --target x86_64-pc-windows-gnu
# 1️⃣3️⃣ Make Linux ELF executable
- name: Make Linux ELF executable
run: chmod +x src-tauri/target/release/bytechat-desktop
# 1️⃣4️⃣ Import GPG key
- name: Import GPG key
run: |
echo "$GPG_PRIVATE_KEY" | gpg --batch --import
echo "$GPG_KEY_ID:6:" | gpg --import-ownertrust
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
# 1️⃣5️⃣ Sign Linux artifacts
- name: Sign Linux artifacts
run: |
for f in src-tauri/target/release/bytechat-desktop \
src-tauri/target/release/bundle/deb/*.deb \
src-tauri/target/release/bundle/rpm/*.rpm; do
echo "$GPG_PASSPHRASE" | gpg --batch --yes --passphrase-fd 0 \
--pinentry-mode loopback --detach-sign -a "$f"
done
env:
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
# 1️⃣6️⃣ Sign Windows exe
- name: Sign Windows exe
run: |
exe=src-tauri/target/x86_64-pc-windows-gnu/release/bytechat-desktop.exe
echo "$GPG_PASSPHRASE" | gpg --batch --yes --passphrase-fd 0 \
--pinentry-mode loopback --detach-sign -a "$exe"
env:
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
# 1️⃣7️⃣ Upload Android APKs
- name: Upload Android APK
uses: actions/upload-artifact@v3
with:
name: tauri-android-apk
path: |
src-tauri/gen/android/app/build/outputs/apk/debug/app-debug.apk
src-tauri/gen/android/app/build/outputs/apk/release/app-release.apk
# 1️⃣8️⃣ Upload Linux packages
- name: Upload Linux packages
uses: actions/upload-artifact@v3
with:
name: tauri-linux
path: |
src-tauri/target/release/bytechat-desktop
src-tauri/target/release/bytechat-desktop.asc
src-tauri/target/release/bundle/deb/*.deb
src-tauri/target/release/bundle/deb/*.asc
src-tauri/target/release/bundle/rpm/*.rpm
src-tauri/target/release/bundle/rpm/*.asc
key/bytechat-public.gpg
# 1️⃣9️⃣ Upload Windows exe + signature
- name: Upload Windows exe
uses: actions/upload-artifact@v3
with:
name: tauri-windows-exe
path: |
src-tauri/target/x86_64-pc-windows-gnu/release/bytechat-desktop.exe
src-tauri/target/x86_64-pc-windows-gnu/release/bytechat-desktop.exe.asc