summaryrefslogtreecommitdiff
path: root/scripts/dev/deploy.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/dev/deploy.sh')
-rw-r--r--scripts/dev/deploy.sh57
1 files changed, 57 insertions, 0 deletions
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