diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4a7f5a9..0e73757 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,21 +7,8 @@ on: workflow_dispatch: jobs: - build: - strategy: - fail-fast: false - matrix: - include: - - platform: 'macos-latest' - args: '--target aarch64-apple-darwin' - - platform: 'macos-latest' - args: '--target x86_64-apple-darwin' - - platform: 'ubuntu-22.04' - args: '' - - platform: 'windows-latest' - args: '' - - runs-on: ${{ matrix.platform }} + build-linux: + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 @@ -35,40 +22,20 @@ jobs: pip install -r backend/requirements.txt pip install pyinstaller + - name: Install Linux system dependencies + run: | + sudo apt-get update + sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev + - name: Bundle Python backend with PyInstaller run: | cd backend pyinstaller batchtube-server.spec mkdir -p ../src-tauri/binaries - shell: bash - - - name: Copy sidecar binary (Windows) - if: matrix.platform == 'windows-latest' - run: cp backend/dist/batchtube-server.exe src-tauri/binaries/batchtube-server-x86_64-pc-windows-msvc.exe - shell: bash - - - name: Copy sidecar binary (macOS arm) - if: matrix.platform == 'macos-latest' && contains(matrix.args, 'aarch64') - run: cp backend/dist/batchtube-server src-tauri/binaries/batchtube-server-aarch64-apple-darwin - - - name: Copy sidecar binary (macOS x86) - if: matrix.platform == 'macos-latest' && contains(matrix.args, 'x86_64') - run: cp backend/dist/batchtube-server src-tauri/binaries/batchtube-server-x86_64-apple-darwin - - - name: Copy sidecar binary (Linux) - if: matrix.platform == 'ubuntu-22.04' - run: cp backend/dist/batchtube-server src-tauri/binaries/batchtube-server-x86_64-unknown-linux-gnu - - - name: Install Linux dependencies - if: matrix.platform == 'ubuntu-22.04' - run: | - sudo apt-get update - sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf + cp dist/batchtube-server ../src-tauri/binaries/batchtube-server-x86_64-unknown-linux-gnu - name: Install Rust uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} - name: Setup Node.js uses: actions/setup-node@v4 @@ -78,16 +45,13 @@ jobs: - name: Install npm dependencies run: npm install - - name: Build Tauri app + - name: Build Tauri app (Linux) uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} - TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} with: tagName: ${{ github.ref_name }} releaseName: 'BatchTube v__VERSION__' - releaseBody: 'See CHANGELOG for details' - releaseDraft: true + releaseBody: 'BatchTube — batch download YouTube videos at scale.' + releaseDraft: false prerelease: false - args: ${{ matrix.args }} diff --git a/backend/api_server.py b/backend/api_server.py index 64f02aa..42c4167 100644 --- a/backend/api_server.py +++ b/backend/api_server.py @@ -1,5 +1,5 @@ """ -api_server.py - FastAPI backend for YouTube SIPOC Tool +api_server.py - FastAPI backend for BatchTube Serves the Web GUI, REST API, and Server-Sent Events (SSE) for real-time progress. """ import sys @@ -33,7 +33,7 @@ logging.basicConfig( ) logger = logging.getLogger("api_server") -app = FastAPI(title="YouTube SIPOC Tool", version="1.0.0") +app = FastAPI(title="BatchTube", version="1.0.0") # CORS - allow localhost GUI access app.add_middleware( @@ -430,7 +430,7 @@ async def health(): if __name__ == "__main__": print(f"\n{'='*60}") - print(" YouTube SIPOC Tool") + print(" BatchTube") print(f" Web GUI: http://{config.API_HOST}:{config.API_PORT}") print(f" API: http://{config.API_HOST}:{config.API_PORT}/api") print(f"{'='*60}\n") diff --git a/backend/web/index.html b/backend/web/index.html index 64e343c..8655fa3 100644 --- a/backend/web/index.html +++ b/backend/web/index.html @@ -3,7 +3,7 @@
-