diff --git a/.gitea/workflows/build-and-test.yml b/.gitea/workflows/build-and-test.yml index a72dcc7..f8c57c3 100644 --- a/.gitea/workflows/build-and-test.yml +++ b/.gitea/workflows/build-and-test.yml @@ -31,9 +31,9 @@ jobs: ~/.cargo/registry ~/.cargo/git src-tauri/target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + key: ${{ runner.os }}-cargo-host-${{ hashFiles('**/Cargo.lock') }} restore-keys: | - ${{ runner.os }}-cargo- + ${{ runner.os }}-cargo-host- - name: Cache Node dependencies uses: actions/cache@v3 @@ -82,9 +82,9 @@ jobs: ~/.cargo/registry ~/.cargo/git src-tauri/target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + key: ${{ runner.os }}-cargo-android-${{ hashFiles('**/Cargo.lock') }} restore-keys: | - ${{ runner.os }}-cargo- + ${{ runner.os }}-cargo-android- - name: Cache Node dependencies uses: actions/cache@v3 @@ -122,7 +122,7 @@ jobs: id: build run: | mkdir -p artifacts - bun run tauri android build --apk true + bun run tauri android build --apk true --target aarch64 # Find the generated APK file ARTIFACT=$(find src-tauri/gen/android/app/build/outputs/apk -name "*.apk" -type f -print -quit) diff --git a/.gitea/workflows/build-release.yml b/.gitea/workflows/build-release.yml index e4dd8f4..4f779e4 100644 --- a/.gitea/workflows/build-release.yml +++ b/.gitea/workflows/build-release.yml @@ -18,37 +18,40 @@ jobs: test: name: Run Tests runs-on: linux/amd64 + container: + image: gitea.tourolle.paris/dtourolle/jellytau-builder:latest steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Setup Bun - uses: oven-sh/setup-bun@v1 - - - name: Setup Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - - name: Cache Rust dependencies uses: actions/cache@v3 with: path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + ~/.cargo/registry + ~/.cargo/git + src-tauri/target + key: ${{ runner.os }}-cargo-host-${{ hashFiles('**/Cargo.lock') }} restore-keys: | - ${{ runner.os }}-cargo- + ${{ runner.os }}-cargo-host- + + - name: Cache Node dependencies + uses: actions/cache@v3 + with: + path: | + ~/.bun/install/cache + node_modules + key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }} + restore-keys: | + ${{ runner.os }}-bun- - name: Install dependencies run: bun install - name: Run frontend tests - run: bun run test --run + run: | + bunx svelte-kit sync + bun run test --run continue-on-error: false - name: Run Rust tests @@ -63,45 +66,32 @@ jobs: name: Build Linux runs-on: linux/amd64 needs: test + container: + image: gitea.tourolle.paris/dtourolle/jellytau-builder:latest steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Setup Bun - uses: oven-sh/setup-bun@v1 - - - name: Setup Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - - - name: Install system dependencies - run: | - sudo apt-get update - sudo apt-get install -y \ - libwebkit2gtk-4.1-dev \ - build-essential \ - curl \ - wget \ - file \ - libssl-dev \ - libgtk-3-dev \ - libayatana-appindicator3-dev \ - librsvg2-dev - - name: Cache Rust dependencies uses: actions/cache@v3 with: path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + ~/.cargo/registry + ~/.cargo/git + src-tauri/target + key: ${{ runner.os }}-cargo-host-${{ hashFiles('**/Cargo.lock') }} restore-keys: | - ${{ runner.os }}-cargo- + ${{ runner.os }}-cargo-host- + + - name: Cache Node dependencies + uses: actions/cache@v3 + with: + path: | + ~/.bun/install/cache + node_modules + key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }} + restore-keys: | + ${{ runner.os }}-bun- - name: Install dependencies run: bun install @@ -135,59 +125,40 @@ jobs: name: Build Android runs-on: linux/amd64 needs: test + container: + image: gitea.tourolle.paris/dtourolle/jellytau-builder:latest + env: + ANDROID_HOME: /opt/android-sdk + ANDROID_SDK_ROOT: /opt/android-sdk + ANDROID_NDK_HOME: /opt/android-sdk/ndk/27.0.11902837 steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Setup Bun - uses: oven-sh/setup-bun@v1 - - - name: Setup Java - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: '17' - - - name: Setup Android SDK - uses: android-actions/setup-android@v2 - with: - api-level: 33 - - - name: Setup Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - - - name: Add Android targets - run: | - rustup target add aarch64-linux-android - rustup target add armv7-linux-androideabi - rustup target add x86_64-linux-android - - - name: Install Android NDK - run: | - sdkmanager "ndk;25.1.8937393" - - name: Cache Rust dependencies uses: actions/cache@v3 with: path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ + ~/.cargo/registry + ~/.cargo/git + src-tauri/target key: ${{ runner.os }}-cargo-android-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-android- + - name: Cache Node dependencies + uses: actions/cache@v3 + with: + path: | + ~/.bun/install/cache + node_modules + key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }} + restore-keys: | + ${{ runner.os }}-bun- + - name: Install dependencies run: bun install - - name: Resolve Android NDK path - run: echo "ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/25.1.8937393" >> "$GITHUB_ENV" - - name: Set app version from tag run: | REF="${GITHUB_REF#refs/tags/v}" @@ -201,8 +172,6 @@ jobs: - name: Initialize Android project run: bun run tauri android init - env: - ANDROID_NDK_HOME: ${{ env.ANDROID_NDK_HOME }} - name: Sync custom Android sources & gradle config run: ./scripts/sync-android-sources.sh @@ -218,11 +187,7 @@ jobs: EOF - name: Build signed Android APK - run: bun run tauri android build --apk - env: - ANDROID_NDK_HOME: ${{ env.ANDROID_NDK_HOME }} - ANDROID_SDK_ROOT: ${{ env.ANDROID_SDK_ROOT }} - ANDROID_HOME: ${{ env.ANDROID_SDK_ROOT }} + run: bun run tauri android build --apk --target aarch64 - name: Collect & verify signed APK run: | @@ -247,6 +212,8 @@ jobs: runs-on: linux/amd64 needs: [build-linux, build-android] if: startsWith(github.ref, 'refs/tags/v') + container: + image: gitea.tourolle.paris/dtourolle/jellytau-builder:latest steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/src-tauri/src/player/mod.rs b/src-tauri/src/player/mod.rs index 286043b..6a24990 100644 --- a/src-tauri/src/player/mod.rs +++ b/src-tauri/src/player/mod.rs @@ -217,6 +217,7 @@ impl PlayerController { /// Used on platforms where video is rendered outside the native backend /// (Linux WebKitGTK HTML5