optimize: parallelize test dependencies installation

This commit is contained in:
yetone
2025-08-02 17:45:13 +08:00
parent 751d1855e7
commit 54ef723283

View File

@@ -29,14 +29,13 @@ log_verbose() {
fi
}
clone_deps() {
local deps_dir=${1:-"$PWD/deps"}
log_verbose "Cloning dependencies into: $deps_dir"
mkdir -p "$deps_dir"
for dep in "${DEPS[@]}"; do
repo_name="$(echo "$dep" | cut -d'/' -f2)"
# Process a single dependency (used for parallel execution)
process_single_dep() {
local dep="$1"
local deps_dir="$2"
local repo_name="$(echo "$dep" | cut -d'/' -f2)"
local repo_path="$deps_dir/$repo_name"
if [ -d "$repo_path/.git" ]; then
log_verbose "Updating existing repository: $repo_path"
(
@@ -48,6 +47,7 @@ clone_deps() {
git reset -q --hard origin/master
else
log "Could not find main or master branch for $repo_name"
return 1
fi
)
else
@@ -58,7 +58,36 @@ clone_deps() {
log_verbose "Cloning new repository: $dep to $repo_path"
git clone -q --depth 1 "https://github.com/${dep}.git" "$repo_path"
fi
}
clone_deps() {
local deps_dir=${1:-"$PWD/deps"}
log_verbose "Cloning dependencies into: $deps_dir (parallel mode)"
mkdir -p "$deps_dir"
# Array to store background process PIDs
local pids=()
# Start all dependency processes in parallel
for dep in "${DEPS[@]}"; do
process_single_dep "$dep" "$deps_dir" &
pids+=($!)
done
# Wait for all background processes to complete and check their exit status
local failed_count=0
for pid in "${pids[@]}"; do
if ! wait "$pid"; then
((failed_count++))
fi
done
if [ "$failed_count" -gt 0 ]; then
log "Warning: $failed_count dependencies failed to process"
return 1
fi
log_verbose "All dependencies processed successfully"
}
install_luals() {