diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index b428826..b5e2309 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -85,7 +85,7 @@ jobs: HOST_TARGET="$(rustc -vV | sed -n 's/^host: //p')" BUILD_TARGET="$HOST_TARGET" if [ "$HOST_TARGET" != "x86_64-unknown-linux-gnu" ] && command -v rustup >/dev/null 2>&1; then - if rustup target list --installed | grep -qx 'x86_64-unknown-linux-gnu'; then + if rustup target list --installed | grep -qx 'x86_64-unknown-linux-gnu' && command -v x86_64-linux-gnu-gcc >/dev/null 2>&1; then BUILD_TARGET="x86_64-unknown-linux-gnu" fi fi diff --git a/scripts/build-release.sh b/scripts/build-release.sh index 8f546be..a52f858 100755 --- a/scripts/build-release.sh +++ b/scripts/build-release.sh @@ -111,6 +111,11 @@ PLATFORM="${TARGET:-$(detect_platform)}" PACKAGE_NAME="lightops-${VERSION}-${PLATFORM}" STAGE_DIR="target/release-package/${PACKAGE_NAME}" ARCHIVE_PATH="${OUTPUT_DIR}/${PACKAGE_NAME}.tar.gz" +HOST_TARGET="$(rustc -vV 2>/dev/null | sed -n 's/^host: //p')" +NATIVE_TARGET="false" +if [[ -n "$TARGET" && -n "$HOST_TARGET" && "$TARGET" == "$HOST_TARGET" ]]; then + NATIVE_TARGET="true" +fi if [[ "$SKIP_BUILD" != "true" ]]; then log "构建前端" @@ -124,7 +129,7 @@ if [[ "$SKIP_BUILD" != "true" ]]; then log "构建 Rust 二进制" cd "$ROOT" - if [[ -n "$TARGET" ]]; then + if [[ -n "$TARGET" && "$NATIVE_TARGET" != "true" ]]; then cargo build --release --target "$TARGET" -p lightops-server -p lightops-agent BIN_DIR="target/${TARGET}/release" else @@ -133,7 +138,7 @@ if [[ "$SKIP_BUILD" != "true" ]]; then fi else cd "$ROOT" - if [[ -n "$TARGET" ]]; then + if [[ -n "$TARGET" && "$NATIVE_TARGET" != "true" ]]; then BIN_DIR="target/${TARGET}/release" else BIN_DIR="target/release"