From 4c77a05993d40c42ebe78c1d3a72f8049f360982 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 24 Jan 2026 03:56:35 +0800 Subject: Move deployment scripts to scripts/dev directory --- scripts/dev/deploy.sh | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 scripts/dev/deploy.sh (limited to 'scripts/dev/deploy.sh') diff --git a/scripts/dev/deploy.sh b/scripts/dev/deploy.sh new file mode 100644 index 0000000..429ea0a --- /dev/null +++ b/scripts/dev/deploy.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +# Require : Cargo (Rust) + +# Change to the directory where the script is located +cd "$(dirname "$0")/../../" || exit 1 + +# Check if core library exists +coreLibPath="../VersionControl/" +if [ ! -d "$coreLibPath" ]; then + echo "Core library not found at $coreLibPath. Aborting build." + exit 1 +fi + +# Test core library +echo "Testing Core Library \"../VersionControl/Cargo.toml\"" +cargo test --manifest-path ../VersionControl/Cargo.toml --workspace --quiet +if [ $? -ne 0 ]; then + echo "Core library tests failed. Aborting build." + exit 1 +fi + +# Test workspace +echo "Testing Command Line \"./Cargo.toml\"" +cargo test --workspace --quiet +if [ $? -ne 0 ]; then + echo "Workspace tests failed. Aborting build." + exit 1 +fi + +# Check if main git worktree is clean +git_status=$(git status --porcelain) +if [ -n "$git_status" ]; then + echo "Git worktree is not clean. Commit or stash changes before building." + exit 1 +fi + +# Check if core library git worktree is clean +pushd "$coreLibPath" > /dev/null +core_git_status=$(git status --porcelain) +popd > /dev/null +if [ -n "$core_git_status" ]; then + echo "Core library git worktree is not clean. Commit or stash changes before building." + exit 1 +fi + +# Build +echo "Building \"./Cargo.toml\"" +if FORCE_BUILD=$(date +%s) cargo build --workspace --release --quiet; then + # Build succeeded + # Export + echo "Deploying \"./.cargo/config.toml\"" + if cargo run --manifest-path tools/build_helper/Cargo.toml --quiet --bin exporter release; then + # Copy compile_info.rs.template to compile_info.rs after successful export + cp -f templates/compile_info.rs.template src/data/compile_info.rs + fi +fi -- cgit