build: properly handle daemon build

This commit is contained in:
zhom
2026-01-11 22:06:24 +04:00
parent 9c73beaaea
commit 1e104e0e59
3 changed files with 54 additions and 12 deletions
+33 -2
View File
@@ -63,8 +63,39 @@ jobs:
- name: Install dependencies from lockfile
run: pnpm install --frozen-lockfile
- name: Install rust dependencies
- name: Build frontend
if: matrix.language == 'rust'
run: pnpm next build
- name: Get host target
if: matrix.language == 'rust'
id: host_target
shell: bash
run: |
HOST_TARGET=$(rustc -vV | sed -n 's|host: ||p')
echo "target=${HOST_TARGET}" >> $GITHUB_OUTPUT
- name: Build sidecar binaries
if: matrix.language == 'rust'
shell: bash
working-directory: ./src-tauri
run: |
cargo build --bin donut-proxy --release
cargo build --bin donut-daemon --release
- name: Copy sidecar binaries to Tauri binaries
if: matrix.language == 'rust'
shell: bash
run: |
mkdir -p src-tauri/binaries
HOST_TARGET="${{ steps.host_target.outputs.target }}"
cp src-tauri/target/release/donut-proxy src-tauri/binaries/donut-proxy-${HOST_TARGET}
cp src-tauri/target/release/donut-daemon src-tauri/binaries/donut-daemon-${HOST_TARGET}
chmod +x src-tauri/binaries/donut-proxy-${HOST_TARGET}
chmod +x src-tauri/binaries/donut-daemon-${HOST_TARGET}
- name: Build rust dependencies
if: matrix.language == 'rust'
working-directory: ./src-tauri
run: |
+10 -5
View File
@@ -82,21 +82,26 @@ jobs:
echo "target=${HOST_TARGET}" >> $GITHUB_OUTPUT
echo "Host target: ${HOST_TARGET}"
- name: Build donut-proxy sidecar
- name: Build sidecar binaries
shell: bash
working-directory: ./src-tauri
run: cargo build --bin donut-proxy
run: |
cargo build --bin donut-proxy --release
cargo build --bin donut-daemon --release
- name: Copy donut-proxy binary to Tauri binaries
- name: Copy sidecar binaries to Tauri binaries
shell: bash
run: |
mkdir -p src-tauri/binaries
HOST_TARGET="${{ steps.host_target.outputs.target }}"
if [[ "$HOST_TARGET" == *"windows"* ]]; then
cp src-tauri/target/debug/donut-proxy.exe src-tauri/binaries/donut-proxy-${HOST_TARGET}.exe
cp src-tauri/target/release/donut-proxy.exe src-tauri/binaries/donut-proxy-${HOST_TARGET}.exe
cp src-tauri/target/release/donut-daemon.exe src-tauri/binaries/donut-daemon-${HOST_TARGET}.exe
else
cp src-tauri/target/debug/donut-proxy src-tauri/binaries/donut-proxy-${HOST_TARGET}
cp src-tauri/target/release/donut-proxy src-tauri/binaries/donut-proxy-${HOST_TARGET}
cp src-tauri/target/release/donut-daemon src-tauri/binaries/donut-daemon-${HOST_TARGET}
chmod +x src-tauri/binaries/donut-proxy-${HOST_TARGET}
chmod +x src-tauri/binaries/donut-daemon-${HOST_TARGET}
fi
- name: Run rustfmt check
+11 -5
View File
@@ -75,14 +75,20 @@ fn external_binaries_exist() -> bool {
let binaries_dir = PathBuf::from(&manifest_dir).join("binaries");
// Check for required external binaries
let donut_proxy_name = if target.contains("windows") {
format!("donut-proxy-{}.exe", target)
// Check for all required external binaries (must match tauri.conf.json externalBin)
let (donut_proxy_name, donut_daemon_name) = if target.contains("windows") {
(
format!("donut-proxy-{}.exe", target),
format!("donut-daemon-{}.exe", target),
)
} else {
format!("donut-proxy-{}", target)
(
format!("donut-proxy-{}", target),
format!("donut-daemon-{}", target),
)
};
binaries_dir.join(&donut_proxy_name).exists()
binaries_dir.join(&donut_proxy_name).exists() && binaries_dir.join(&donut_daemon_name).exists()
}
fn ensure_dist_folder_exists() {