mirror of
https://github.com/hcengineering/platform.git
synced 2026-08-26 06:12:23 +02:00
101 lines
2.7 KiB
Bash
101 lines
2.7 KiB
Bash
#!/bin/bash
|
|
|
|
# Packages to publish
|
|
PUBLISH_PACKAGES=("types" "sdk-types" "shared" "yaml" "rest-client" "query" "client-query" "cockroach" "server")
|
|
|
|
beta_mode=false
|
|
if [ "$1" == "beta" ]; then
|
|
beta_mode=true
|
|
beta_number="$2"
|
|
if [ -z "$beta_number" ]; then
|
|
echo "Please supply beta number as second parameter (e.g., 'sh scripts/publish.sh beta 2')"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Массивы для хранения путей пакетов и их оригинальных версий
|
|
package_paths=()
|
|
package_versions=()
|
|
|
|
save_versions() {
|
|
for pkg in packages/*; do
|
|
if [ -d "$pkg" ]; then
|
|
local package_json="$pkg/package.json"
|
|
if [ -f "$package_json" ]; then
|
|
local ver
|
|
ver=$(jq -r '.version' "$package_json")
|
|
package_paths+=("$pkg")
|
|
package_versions+=("$ver")
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|
|
restore_versions() {
|
|
local length=${#package_paths[@]}
|
|
for ((i = 0; i < length; i++)); do
|
|
local pkg="${package_paths[$i]}"
|
|
local old_version="${package_versions[$i]}"
|
|
local package_json="$pkg/package.json"
|
|
jq --arg old_version "$old_version" '.version = $old_version' "$package_json" > "$package_json.tmp" && mv "$package_json.tmp" "$package_json"
|
|
done
|
|
}
|
|
|
|
bump_global_version() {
|
|
local version_file="./.version"
|
|
|
|
if [ -f "$version_file" ]; then
|
|
current_version=$(cat "$version_file" | tr -d '"')
|
|
if [ "$beta_mode" = true ]; then
|
|
new_version="${current_version}-beta.${beta_number}"
|
|
echo "Beta version: $new_version"
|
|
else
|
|
IFS='.' read -r major minor patch <<< "$current_version"
|
|
new_version="$major.$minor.$((patch + 1))"
|
|
echo "$new_version" > "$version_file"
|
|
echo "Version updated to $new_version"
|
|
fi
|
|
else
|
|
echo "❌ Version file $version_file not found"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
update_package_json() {
|
|
local pkg_path=$1
|
|
local package_json="$pkg_path/package.json"
|
|
|
|
if [ -f "$package_json" ]; then
|
|
jq --arg new_version "$new_version" '.version = $new_version' "$package_json" > "$package_json.tmp" && mv "$package_json.tmp" "$package_json"
|
|
echo "Updated version for $pkg_path to $new_version"
|
|
else
|
|
echo "❌ package.json not found in $pkg_path"
|
|
fi
|
|
}
|
|
|
|
save_versions
|
|
bump_global_version
|
|
|
|
for pkg in packages/*; do
|
|
if [ -d "$pkg" ]; then
|
|
update_package_json "$pkg"
|
|
rm -rf "$pkg/types" "$pkg/dist"
|
|
fi
|
|
done
|
|
|
|
bun update
|
|
bun install
|
|
bun run build
|
|
|
|
for pkg in "${PUBLISH_PACKAGES[@]}"; do
|
|
echo "📦 Publishing $pkg..."
|
|
if [ "$beta_mode" = true ]; then
|
|
(cd "packages/$pkg" && bun publish --tag beta) || echo "❌ Failed to publish $pkg"
|
|
else
|
|
(cd "packages/$pkg" && bun publish) || echo "❌ Failed to publish $pkg"
|
|
fi
|
|
done
|
|
|
|
restore_versions
|
|
|
|
echo "✅ Done!" |