name: desktop-builds on: push: branches: - main - master pull_request: workflow_dispatch: jobs: build-linux: name: build-linux runs-on: linux steps: - name: Checkout uses: https://gitea.com/actions/checkout@v4 - name: Install Linux dependencies run: | if command -v sudo >/dev/null 2>&1; then SUDO=sudo else SUDO= fi $SUDO apt-get update $SUDO apt-get install -y \ libwebkit2gtk-4.1-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ patchelf \ rpm - name: Install toolchain run: | if ! command -v rustup >/dev/null 2>&1; then curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal fi if ! command -v bun >/dev/null 2>&1; then curl -fsSL https://bun.sh/install | bash fi - name: Install JavaScript dependencies run: | export PATH="$HOME/.cargo/bin:$HOME/.bun/bin:$PATH" bun install --frozen-lockfile - name: Build Linux bundles run: | export PATH="$HOME/.cargo/bin:$HOME/.bun/bin:$PATH" bun run tauri:build:linux - name: Upload Linux bundles uses: https://gitea.com/actions/upload-artifact@v4 with: name: endless-sea-linux if-no-files-found: error path: | src-tauri/target/release/bundle/deb/*.deb src-tauri/target/release/bundle/rpm/*.rpm build-windows: name: build-windows runs-on: linux steps: - name: Checkout uses: https://gitea.com/actions/checkout@v4 - name: Install Windows cross-build dependencies run: | if command -v sudo >/dev/null 2>&1; then SUDO=sudo else SUDO= fi $SUDO apt-get update $SUDO apt-get install -y \ nsis \ llvm \ lld \ wget \ unzip \ zip - name: Install toolchain run: | if ! command -v rustup >/dev/null 2>&1; then curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal fi if ! command -v bun >/dev/null 2>&1; then curl -fsSL https://bun.sh/install | bash fi export PATH="$HOME/.cargo/bin:$HOME/.bun/bin:$PATH" rustup target add x86_64-pc-windows-msvc - name: Install cargo-xwin run: | export PATH="$HOME/.cargo/bin:$HOME/.bun/bin:$PATH" cargo install --locked cargo-xwin - name: Install JavaScript dependencies run: | export PATH="$HOME/.cargo/bin:$HOME/.bun/bin:$PATH" bun install --frozen-lockfile - name: Build Windows installer from Linux run: | export PATH="$HOME/.cargo/bin:$HOME/.bun/bin:$PATH" bun run tauri:build:windows - name: Upload Windows bundles uses: https://gitea.com/actions/upload-artifact@v4 with: name: endless-sea-windows if-no-files-found: error path: | src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/*.exe