fix version 1
This commit is contained in:
@@ -18,17 +18,17 @@ require (
|
||||
bsm/full/module/social/feed v0.0.0
|
||||
bsm/full/module/social/group v0.0.0
|
||||
bsm/full/module/social/relation v0.0.0
|
||||
google.golang.org/protobuf v1.36.11
|
||||
google.golang.org/protobuf v1.36.12
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.30.0 // indirect
|
||||
golang.org/x/net v0.57.0 // indirect
|
||||
golang.org/x/sys v0.47.0 // indirect
|
||||
golang.org/x/text v0.40.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20260807164820-c8921c73eeea // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260807164820-c8921c73eeea // indirect
|
||||
google.golang.org/grpc v1.83.0 // indirect
|
||||
golang.org/x/net v0.59.0 // indirect
|
||||
golang.org/x/sys v0.48.0 // indirect
|
||||
golang.org/x/text v0.42.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20260921155816-b14227669459 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459 // indirect
|
||||
google.golang.org/grpc v1.84.0 // indirect
|
||||
)
|
||||
|
||||
replace (
|
||||
|
||||
@@ -1,42 +1,22 @@
|
||||
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
||||
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/go-logr/logr v1.4.4 h1:tG4xh9yMsRCAiodLVTxyrkzSZ9+o0L1Kg/+cPVcbP/8=
|
||||
github.com/go-logr/logr v1.4.4/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.30.0 h1:/Tnpcb2E0Pz/tN9s3bfEY2Q8ePCEX9iuS+cneUwncnw=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.30.0/go.mod h1:zOBXOsUaBSjKgmH4OGzV1esUpR3oUSCPYVd2cUBjKYY=
|
||||
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
|
||||
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
|
||||
go.opentelemetry.io/otel v1.45.0 h1:pdrWmLHofpubmArBv1LgFSv1Z0Ie/ppdZzu+kUN5EeU=
|
||||
go.opentelemetry.io/otel v1.45.0/go.mod h1:XZxIqPapzEYnhNSScF5DIqXhm/rYi0FzCe2XddAwZfQ=
|
||||
go.opentelemetry.io/otel/metric v1.45.0 h1:7Eg1uH7CJ5cXv9is6tnBe1FI6rj1nwUdbFypRm3br/M=
|
||||
go.opentelemetry.io/otel/metric v1.45.0/go.mod h1:HAPbm1nd3p1PmFH7v2dR+6BjXxw+Lq4a2+pndMAm08s=
|
||||
go.opentelemetry.io/otel/sdk v1.45.0 h1:4VVSMgQ83dUgW2aoX5f6JgLvHwIvzcuLnF9lUdCSpCw=
|
||||
go.opentelemetry.io/otel/sdk v1.45.0/go.mod h1:Sr40LgXV7DsKMMJMKOhUWOgMWTfAaqvm2kF0g7ilwuA=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA=
|
||||
go.opentelemetry.io/otel/trace v1.45.0 h1:l/mP6Uv7oNO7/TblbhpbgMidxhq1uO/rPsikOyVhxag=
|
||||
go.opentelemetry.io/otel/trace v1.45.0/go.mod h1:qoJJA2xNMnxRrdISU/kLtfUH2wNeQbiv+jhs/CxI8bc=
|
||||
golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE=
|
||||
golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU=
|
||||
golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
|
||||
golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
||||
golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs=
|
||||
golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY=
|
||||
golang.org/x/net v0.59.0 h1:5zfYln+w5XCxwrnMMJPufRgNoXEaGxl0wo5GqPXyues=
|
||||
golang.org/x/net v0.59.0/go.mod h1:2DA/G1UfVbCpQPeWTmMPGY7Cs2PkBkwu743bVX5PIVg=
|
||||
golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo=
|
||||
golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og=
|
||||
golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI=
|
||||
golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E=
|
||||
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
|
||||
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20260807164820-c8921c73eeea h1:Jifw/kjs/r3B0uszvls/m3c3tmZs2YHGM9C+rvxP9gY=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20260807164820-c8921c73eeea/go.mod h1:K/+WGbmBY7aNW1HDw1fJnKYo10i0DkAX6pows00dLig=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260807164820-c8921c73eeea h1:kVhQEPTpKQahD5+JSBTfBB19wcgQTTjAIn45MBqnyHk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260807164820-c8921c73eeea/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
|
||||
google.golang.org/grpc v1.83.0 h1:JeNZEKJFbQxArAMl+hiytHauacDNqJUllNfmIMmpqnQ=
|
||||
google.golang.org/grpc v1.83.0/go.mod h1:kDyl6SKsiHKt0uylY5gtn5cEjkrIOhQOGDgIc4JGwzQ=
|
||||
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
|
||||
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20260921155816-b14227669459 h1:GS9OIt/j7c8bvBjYNgnKQysVfmV7e4jM0H8ZK95G4t8=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20260921155816-b14227669459/go.mod h1:PX5/4vemwVoXtwEcRDWwcR1/r0qrosfx3qoVADMwnVE=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459 h1:b0xCahf3FK2m2Cv0p4vTozGPWncCvLfwV86UNg8xWU8=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459/go.mod h1:OaIUM3+LpYcK2GXM4FTmhWoIq371Owdr+Cc7/BsYHHc=
|
||||
google.golang.org/grpc v1.84.0 h1:soMyaPJ8pAak5PIQ0DGBUir0XRo2fRoMqhNWMLlLxO0=
|
||||
google.golang.org/grpc v1.84.0/go.mod h1:ljCht0DrxQrXBDRTZp52Qxh3Ffk8CdYm2sj4O2QN2C0=
|
||||
google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc=
|
||||
google.golang.org/protobuf v1.36.12/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
|
||||
|
||||
@@ -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}"
|
||||
|
||||
37
scripts/install-tools.sh
Normal file
37
scripts/install-tools.sh
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# 工具列表(从 go.mod 的 tool 指令中提取)
|
||||
TOOLS=(
|
||||
"git.apinb.com/bsm-tools/protoc-gen-markdown"
|
||||
"git.apinb.com/bsm-tools/protoc-gen-slc"
|
||||
"git.apinb.com/bsm-tools/protoc-gen-ts"
|
||||
"github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway"
|
||||
"github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2"
|
||||
"github.com/pepabo/protoc-gen-go-client"
|
||||
"google.golang.org/grpc/cmd/protoc-gen-go-grpc"
|
||||
"google.golang.org/protobuf/cmd/protoc-gen-go"
|
||||
)
|
||||
|
||||
echo "==> 开始安装 protoc 插件..."
|
||||
|
||||
for tool in "${TOOLS[@]}"; do
|
||||
echo "--> 安装 $tool"
|
||||
go install "$tool@latest"
|
||||
done
|
||||
|
||||
echo "==> 全部安装完成。"
|
||||
|
||||
# 检查 GOBIN / GOPATH 是否在 PATH 中
|
||||
BIN_DIR="$(go env GOBIN)"
|
||||
if [ -z "$BIN_DIR" ]; then
|
||||
BIN_DIR="$(go env GOPATH)/bin"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "工具安装目录: $BIN_DIR"
|
||||
case ":$PATH:" in
|
||||
*":$BIN_DIR:"*) echo "该目录已在 PATH 中,可直接使用。" ;;
|
||||
*) echo "提示:请将 $BIN_DIR 添加到 PATH 环境变量中,例如:"
|
||||
echo " export PATH=\"\$PATH:$BIN_DIR\"" ;;
|
||||
esac
|
||||
@@ -1,4 +1,4 @@
|
||||
[CmdletBinding()]
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[switch]$SkipVet
|
||||
)
|
||||
@@ -7,12 +7,21 @@ $ErrorActionPreference = "Stop"
|
||||
$workspaceRoot = Split-Path -Parent $PSScriptRoot
|
||||
Push-Location $workspaceRoot
|
||||
try {
|
||||
$unformatted = @(gofmt -l pkgs module)
|
||||
# 本地开发前提:go.work 把共享 SDK 替换为工作区外的相对路径,缺少该目录时整个工作区都无法解析。
|
||||
$sdkDir = [System.IO.Path]::GetFullPath((Join-Path $workspaceRoot "..\..\bsm-sdk\core"))
|
||||
if (-not (Test-Path -Path $sdkDir -PathType Container)) {
|
||||
throw "未找到共享 SDK 目录: $sdkDir`n本地开发前提不满足:请先将 bsm-sdk/core 检出到工作区上一级目录的同级路径,即 $sdkDir"
|
||||
}
|
||||
|
||||
$unformatted = @(gofmt -l pkgs module scripts)
|
||||
if ($unformatted.Count -gt 0) {
|
||||
throw ("gofmt required:" + [Environment]::NewLine + ($unformatted -join [Environment]::NewLine))
|
||||
}
|
||||
|
||||
$modules = @(go list -m -f '{{.Dir}}')
|
||||
if ($LASTEXITCODE -ne 0 -or $modules.Count -eq 0) {
|
||||
throw "未解析到任何工作区模块,go list -m 可能失败或返回空列表"
|
||||
}
|
||||
foreach ($module in $modules) {
|
||||
Write-Host "==> $module"
|
||||
Push-Location $module
|
||||
|
||||
@@ -7,13 +7,26 @@ readonly WORKSPACE_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
|
||||
|
||||
cd -- "${WORKSPACE_ROOT}"
|
||||
|
||||
unformatted="$(gofmt -l pkgs module)"
|
||||
# 本地开发前提:go.work 把共享 SDK 替换为工作区外的相对路径,缺少该目录时整个工作区都无法解析。
|
||||
readonly SDK_DIR="${WORKSPACE_ROOT}/../../bsm-sdk/core"
|
||||
if [[ ! -d "${SDK_DIR}" ]]; then
|
||||
echo "error: 未找到共享 SDK 目录: ${SDK_DIR}" >&2
|
||||
echo "error: 本地开发前提不满足:请先将 bsm-sdk/core 检出到工作区上一级目录的同级路径,即 ${SDK_DIR}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unformatted="$(gofmt -l pkgs module scripts)"
|
||||
if [[ -n "${unformatted}" ]]; then
|
||||
printf 'error: gofmt required:\n%s\n' "${unformatted}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mapfile -t modules < <(go list -m -f '{{.Dir}}')
|
||||
if (( ${#modules[@]} == 0 )); then
|
||||
echo "error: 未解析到任何工作区模块,go list -m 可能失败或返回空列表" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for module_dir in "${modules[@]}"; do
|
||||
echo "==> ${module_dir}"
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user