Files
bytechat-desktop/.gitea/workflows/compile.yaml
rattatwinko fb57f49d45
Some checks failed
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
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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