Files
easyai/scripts/check-deployment-release.sh
T
wangbo b99eb849b4
Test deployment public URL (Linux) / test-linux (push) Waiting to run
Test start.ps1 (Windows) / test-windows (push) Waiting to run
fix(deploy): 修复组件版本解析和安装升级验收流程
2026-10-18 00:18:00 +08:00

34 lines
1.9 KiB
Bash

#!/bin/bash
# Real anonymous image preflight for the complete README installation, no daemon mutations.
set -euo pipefail
unset UPDATE_SERVICES UPDATE_RELEASE_VERSION UPDATE_SERVER_VERSION UPDATE_WEB_VERSION UPDATE_GATEWAY_VERSION UPDATE_WORKER_VERSION UPDATE_UPDATER_VERSION UPDATE_ASG_VERSION UPDATE_AMS_VERSION
unset UPDATE_MANIFEST_SOURCE UPDATE_MANIFEST_URL
source_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
manifest_source=''
while [ "$#" -gt 0 ]; do
case "$1" in
--version) export DEPLOY_RELEASE_VERSION="${2:?缺少版本}"; shift 2 ;;
--manifest) manifest_source="$(cd "$(dirname "${2:?缺少发布记录}")" && pwd)/$(basename "$2")"; shift 2 ;;
*) echo '用法:bash scripts/check-deployment-release.sh [--version 完整版本] [--manifest 发布记录]' >&2; exit 1 ;;
esac
done
if [ -n "$manifest_source" ] && ! [[ "${DEPLOY_RELEASE_VERSION:-}" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]{8}(\.[0-9]+)?$ ]]; then
echo '--manifest 必须同时指定完整 --version' >&2
exit 1
fi
temporary="$(mktemp -d "${TMPDIR:-/tmp}/easyai-release-check.XXXXXX")"
trap 'rm -r "$temporary"' EXIT
cp "$source_root/docker-compose.yml" "$temporary/"
cp -R "$source_root/scripts" "$source_root/system-update" "$temporary/"
if [ -n "$manifest_source" ]; then cp "$manifest_source" "$temporary/system-update/releases/${DEPLOY_RELEASE_VERSION}.json"; fi
for name in .env .env.tools .env.ASG .env.AMS; do cp "$source_root/$name.sample" "$temporary/$name"; done
cd "$temporary"
. ./scripts/init-security-env.sh
. ./scripts/init-application-version-env.sh
write_env_value .env UPDATE_MANIFEST_SOURCE local
plan_application_versions .env
apply_application_versions .env
if docker compose version >/dev/null 2>&1; then compose=(docker compose); else compose=(docker-compose); fi
configuration="$("${compose[@]}" config --format json)"
printf '%s' "$configuration" | python3 ./scripts/verify-deployment-images.py