fix version 1
This commit is contained in:
@@ -5,6 +5,8 @@ set -Eeuo pipefail
|
||||
readonly SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
readonly WORKSPACE_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
|
||||
readonly MODULE_ROOT="${WORKSPACE_ROOT}/module"
|
||||
# 聚合宿主(全量 / 电商)同样需要构建与生产配置,两者都不在 module/ 下。
|
||||
readonly PKGS_ROOT="${WORKSPACE_ROOT}/pkgs"
|
||||
readonly BUILD_ROOT="${WORKSPACE_ROOT}/.builds"
|
||||
readonly ENTRY_ROOT="${BUILD_ROOT}/.entries"
|
||||
readonly CONFIG_ROOT="${BUILD_ROOT}/etc"
|
||||
@@ -25,12 +27,15 @@ export GOARCH=amd64
|
||||
export CGO_ENABLED=0
|
||||
|
||||
modules=()
|
||||
while IFS= read -r -d '' go_mod; do
|
||||
modules+=("$(dirname -- "${go_mod}")")
|
||||
done < <(find "${MODULE_ROOT}" -type f -name go.mod -print0 | sort -z)
|
||||
for source_root in "${MODULE_ROOT}" "${PKGS_ROOT}"; do
|
||||
[[ -d "${source_root}" ]] || continue
|
||||
while IFS= read -r -d '' go_mod; do
|
||||
modules+=("$(dirname -- "${go_mod}")")
|
||||
done < <(find "${source_root}" -type f -name go.mod -print0 | sort -z)
|
||||
done
|
||||
|
||||
if (( ${#modules[@]} == 0 )); then
|
||||
echo "error: no service modules were found under ${MODULE_ROOT}" >&2
|
||||
echo "error: no service modules were found under ${MODULE_ROOT} or ${PKGS_ROOT}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -45,7 +50,10 @@ trap cleanup EXIT
|
||||
echo "Building ${#modules[@]} service modules..."
|
||||
|
||||
for module_dir in "${modules[@]}"; do
|
||||
relative_path="${module_dir#"${MODULE_ROOT}/"}"
|
||||
# 去掉工作区一级目录(module/ 或 pkgs/),产物名保持原样:base-ads、all、ecmall。
|
||||
relative_path="${module_dir#"${WORKSPACE_ROOT}/"}"
|
||||
relative_path="${relative_path#module/}"
|
||||
relative_path="${relative_path#pkgs/}"
|
||||
artifact_name="${relative_path//\//-}"
|
||||
output="${BUILD_ROOT}/${artifact_name}"
|
||||
|
||||
@@ -93,6 +101,18 @@ mkdir -p "${CONFIG_ROOT}"
|
||||
config_count=0
|
||||
|
||||
for module_dir in "${modules[@]}"; do
|
||||
if [[ "${module_dir}" == "${PKGS_ROOT}/"* ]]; then
|
||||
# 聚合入口按 --workspace 选配置,默认工作区为 default,生产配置文件名固定为 default_prod.yaml。
|
||||
# 两个入口同名,按入口名分目录存放,避免相互覆盖。
|
||||
entry_name="$(basename -- "${module_dir}")"
|
||||
config_file="${module_dir}/etc/default_prod.yaml"
|
||||
[[ -f "${config_file}" ]] || continue
|
||||
mkdir -p "${CONFIG_ROOT}/${entry_name}"
|
||||
cp -- "${config_file}" "${CONFIG_ROOT}/${entry_name}/default_prod.yaml"
|
||||
((config_count += 1))
|
||||
continue
|
||||
fi
|
||||
|
||||
module_name="$(basename -- "${module_dir}")"
|
||||
config_name="${module_name}_prod.yaml"
|
||||
config_file="${module_dir}/etc/${config_name}"
|
||||
|
||||
Reference in New Issue
Block a user