Files
bytechat-desktop/.gitea/workflows/compile.yaml
rattatwinko 43300c625b
Some checks failed
Build Tauri App (Linux + Windows + Android) / build (push) Failing after 10m56s
i am going insne fuck gitea ci
2025-09-01 03:15:54 +02:00

182 lines
5.9 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⃣ Set up 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"
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 ANDROID_HOME="$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"
# 6⃣ Persist Android environment variables for subsequent steps
- name: Set Android environment variables
run: |
echo "ANDROID_HOME=$HOME/Android/Sdk" >> $GITHUB_ENV
echo "ANDROID_SDK_ROOT=$HOME/Android/Sdk" >> $GITHUB_ENV
echo "NDK_HOME=$HOME/Android/Sdk/ndk/29.0.13856066" >> $GITHUB_ENV
echo "$HOME/Android/Sdk/platform-tools:$HOME/Android/Sdk/cmdline-tools/latest/bin:$PATH" >> $GITHUB_PATH
# 7⃣ Add Windows Rust target
- name: Add Windows Rust target
run: rustup target add x86_64-pc-windows-gnu
# 8⃣ Install Tauri CLI
- name: Install Tauri CLI
run: cargo install tauri-cli
# 9⃣ Initialize Android project
- name: Initialize Tauri Android project
run: |
cd src-tauri
cargo tauri android init
# 🔟 Build Android APK (Debug)
- name: Build Android Debug APK
run: |
cd src-tauri/gen/android
./gradlew assembleDebug
# 1⃣1⃣ Build Android Release APK
- name: Build Android Release APK
run: |
cd src-tauri/gen/android
./gradlew assembleRelease
# 1⃣2⃣ Build Linux packages
- name: Build Linux packages (deb + rpm)
run: |
cd src-tauri
cargo tauri build
# 1⃣3⃣ Build Windows exe
- name: Build Windows exe
run: |
cd src-tauri
cargo build --release --target x86_64-pc-windows-gnu
# 1⃣4⃣ Make Linux ELF executable
- name: Make Linux ELF executable
run: chmod +x src-tauri/target/release/bytechat-desktop
# 1⃣5⃣ Import GPG key for signing
- 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⃣6⃣ 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⃣7⃣ 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⃣8⃣ 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⃣9⃣ 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
# 2⃣0⃣ 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