Some checks failed
Build Tauri App (Linux + Windows + Android) / build (push) Failing after 10m48s
176 lines
5.5 KiB
YAML
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
|
||
|