diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 9c6b509..cb57694 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -17,6 +17,8 @@ env: jobs: build-windows: runs-on: windows + env: + CARGO_TARGET_DIR: C:\cargo-cache\cinny-desktop steps: - name: Checkout repository @@ -53,14 +55,17 @@ jobs: - name: Build Tauri app run: npm run tauri build - - name: Rename MSI files + - name: Copy and rename MSI files shell: powershell run: | - $msi = Get-ChildItem "src-tauri/target/release/bundle/msi/*.msi" -Exclude "Cinny-*" | Select-Object -First 1 + # Ensure output dir exists in workspace + New-Item -ItemType Directory -Force -Path "src-tauri/target/release/bundle/msi" | Out-Null + # Copy from persistent cache location + $msi = Get-ChildItem "$env:CARGO_TARGET_DIR/release/bundle/msi/*.msi" -Exclude "Cinny-*" | Select-Object -First 1 Copy-Item $msi.FullName "src-tauri/target/release/bundle/msi/Cinny-Windows-x64.msi" - $msiZip = Get-ChildItem "src-tauri/target/release/bundle/msi/*.msi.zip" -Exclude "Cinny-*" | Select-Object -First 1 + $msiZip = Get-ChildItem "$env:CARGO_TARGET_DIR/release/bundle/msi/*.msi.zip" -Exclude "Cinny-*" | Select-Object -First 1 if ($msiZip) { Copy-Item $msiZip.FullName "src-tauri/target/release/bundle/msi/Cinny-Windows-x64.msi.zip" } - $msiZipSig = Get-ChildItem "src-tauri/target/release/bundle/msi/*.msi.zip.sig" -Exclude "Cinny-*" | Select-Object -First 1 + $msiZipSig = Get-ChildItem "$env:CARGO_TARGET_DIR/release/bundle/msi/*.msi.zip.sig" -Exclude "Cinny-*" | Select-Object -First 1 if ($msiZipSig) { Copy-Item $msiZipSig.FullName "src-tauri/target/release/bundle/msi/Cinny-Windows-x64.msi.zip.sig" } Get-ChildItem "src-tauri/target/release/bundle/msi/" @@ -86,6 +91,8 @@ jobs: build-linux: runs-on: ubuntu-latest + env: + CARGO_TARGET_DIR: /home/runner/cargo-cache/cinny-desktop steps: - name: Checkout repository @@ -121,15 +128,19 @@ jobs: - name: Build Tauri app run: npm run tauri build - - name: Rename Linux packages + - name: Copy and rename Linux packages run: | - # Find and copy each file individually to avoid glob issues - find src-tauri/target/release/bundle/appimage -name "*.AppImage" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/appimage/Cinny-Linux-x64.AppImage - find src-tauri/target/release/bundle/deb -name "*.deb" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/deb/Cinny-Linux-x64.deb - find src-tauri/target/release/bundle/rpm -name "*.rpm" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/rpm/Cinny-Linux-x64.rpm + # Create workspace output directories + mkdir -p src-tauri/target/release/bundle/appimage + mkdir -p src-tauri/target/release/bundle/deb + mkdir -p src-tauri/target/release/bundle/rpm + # Copy from persistent cache location + find $CARGO_TARGET_DIR/release/bundle/appimage -name "*.AppImage" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/appimage/Cinny-Linux-x64.AppImage + find $CARGO_TARGET_DIR/release/bundle/deb -name "*.deb" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/deb/Cinny-Linux-x64.deb + find $CARGO_TARGET_DIR/release/bundle/rpm -name "*.rpm" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/rpm/Cinny-Linux-x64.rpm # Copy signature file for updater if it exists - if ls src-tauri/target/release/bundle/appimage/*.AppImage.sig 1> /dev/null 2>&1; then - find src-tauri/target/release/bundle/appimage -name "*.AppImage.sig" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/appimage/Cinny-Linux-x64.AppImage.sig + if ls $CARGO_TARGET_DIR/release/bundle/appimage/*.AppImage.sig 1> /dev/null 2>&1; then + find $CARGO_TARGET_DIR/release/bundle/appimage -name "*.AppImage.sig" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/appimage/Cinny-Linux-x64.AppImage.sig fi # List what we have ls -la src-tauri/target/release/bundle/appimage/ @@ -163,6 +174,8 @@ jobs: build-android: runs-on: windows + env: + CARGO_TARGET_DIR: C:\cargo-cache\cinny-desktop-android steps: - name: Checkout repository @@ -209,9 +222,13 @@ jobs: - name: Build Android APK shell: powershell + timeout-minutes: 30 run: | $env:PATH = "$env:USERPROFILE\.cargo\bin;$env:PATH" npm run tauri android build -- --ci --target aarch64 + # Kill any lingering processes that might hang + Stop-Process -Name "java" -Force -ErrorAction SilentlyContinue + Stop-Process -Name "gradle" -Force -ErrorAction SilentlyContinue env: ANDROID_HOME: ${{ env.ANDROID_HOME }} NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/25.2.9519653