黄中银 2 weeks ago
parent
commit
3d1e7b443c

+ 1 - 1
.workflow/pipeline-20251220.yml

@@ -23,7 +23,7 @@ stages:
         certificate: ''
         image: registry.cn-chengdu.aliyuncs.com/apq/dotnet_sdk:9.0_amd64
         command:
-          - 'dotnet restore Apq.Cfg/Apq.Cfg.csproj && dotnet restore Apq.Cfg.Ini/Apq.Cfg.Ini.csproj && dotnet restore Apq.Cfg.Xml/Apq.Cfg.Xml.csproj && dotnet restore Apq.Cfg.Yaml/Apq.Cfg.Yaml.csproj && dotnet restore Apq.Cfg.Toml/Apq.Cfg.Toml.csproj && dotnet restore Apq.Cfg.Redis/Apq.Cfg.Redis.csproj && dotnet restore Apq.Cfg.Database/Apq.Cfg.Database.csproj && dotnet restore Apq.Cfg.SourceGenerator/Apq.Cfg.SourceGenerator.csproj && dotnet pack Apq.Cfg/Apq.Cfg.csproj -c Release -o ./nupkgs && dotnet pack Apq.Cfg.Ini/Apq.Cfg.Ini.csproj -c Release -o ./nupkgs && dotnet pack Apq.Cfg.Xml/Apq.Cfg.Xml.csproj -c Release -o ./nupkgs && dotnet pack Apq.Cfg.Yaml/Apq.Cfg.Yaml.csproj -c Release -o ./nupkgs && dotnet pack Apq.Cfg.Toml/Apq.Cfg.Toml.csproj -c Release -o ./nupkgs && dotnet pack Apq.Cfg.Redis/Apq.Cfg.Redis.csproj -c Release -o ./nupkgs && dotnet pack Apq.Cfg.Database/Apq.Cfg.Database.csproj -c Release -o ./nupkgs && dotnet pack Apq.Cfg.SourceGenerator/Apq.Cfg.SourceGenerator.csproj -c Release -o ./nupkgs && for pkg in ./nupkgs/*.nupkg; do dotnet nuget push "$pkg" -s https://api.nuget.org/v3/index.json -k ${NUGET_API_KEY} --skip-duplicate; done'
+          - sh buildTools/gitee-pack-push.sh
         notify: []
         strategy:
           retry: '0'

+ 75 - 0
buildTools/gitee-pack-push.sh

@@ -0,0 +1,75 @@
+# gitee-pack-push.sh
+# Gitee CI/CD 流水线打包并发布到 NuGet 的脚本
+# 用法: sh buildTools/gitee-pack-push.sh
+# 环境变量: NUGET_API_KEY - NuGet API 密钥
+
+set -e
+
+echo "=========================================="
+echo "  Apq.Cfg CI/CD 打包发布脚本"
+echo "=========================================="
+
+# 项目列表
+PROJECTS=(
+    "Apq.Cfg/Apq.Cfg.csproj"
+    "Apq.Cfg.Ini/Apq.Cfg.Ini.csproj"
+    "Apq.Cfg.Xml/Apq.Cfg.Xml.csproj"
+    "Apq.Cfg.Yaml/Apq.Cfg.Yaml.csproj"
+    "Apq.Cfg.Toml/Apq.Cfg.Toml.csproj"
+    "Apq.Cfg.Redis/Apq.Cfg.Redis.csproj"
+    "Apq.Cfg.Database/Apq.Cfg.Database.csproj"
+    "Apq.Cfg.Consul/Apq.Cfg.Consul.csproj"
+    "Apq.Cfg.Etcd/Apq.Cfg.Etcd.csproj"
+    "Apq.Cfg.Apollo/Apq.Cfg.Apollo.csproj"
+    "Apq.Cfg.Nacos/Apq.Cfg.Nacos.csproj"
+    "Apq.Cfg.SourceGenerator/Apq.Cfg.SourceGenerator.csproj"
+)
+
+OUTPUT_DIR="./nupkgs"
+NUGET_SOURCE="https://api.nuget.org/v3/index.json"
+
+# 检查 API Key
+if [ -z "$NUGET_API_KEY" ]; then
+    echo "错误: 未设置 NUGET_API_KEY 环境变量"
+    exit 1
+fi
+
+# 创建输出目录
+mkdir -p "$OUTPUT_DIR"
+
+# 还原所有项目依赖
+echo ""
+echo "=========================================="
+echo "  步骤 1/3: 还原项目依赖"
+echo "=========================================="
+for project in "${PROJECTS[@]}"; do
+    echo "还原: $project"
+    dotnet restore "$project"
+done
+
+# 打包所有项目
+echo ""
+echo "=========================================="
+echo "  步骤 2/3: 打包项目"
+echo "=========================================="
+for project in "${PROJECTS[@]}"; do
+    echo "打包: $project"
+    dotnet pack "$project" -c Release -o "$OUTPUT_DIR"
+done
+
+# 发布到 NuGet
+echo ""
+echo "=========================================="
+echo "  步骤 3/3: 发布到 NuGet"
+echo "=========================================="
+for pkg in "$OUTPUT_DIR"/*.nupkg; do
+    if [ -f "$pkg" ]; then
+        echo "发布: $(basename "$pkg")"
+        dotnet nuget push "$pkg" -s "$NUGET_SOURCE" -k "$NUGET_API_KEY" --skip-duplicate
+    fi
+done
+
+echo ""
+echo "=========================================="
+echo "  完成!"
+echo "=========================================="

+ 4 - 0
buildTools/pack-release.ps1

@@ -90,6 +90,10 @@ Write-ColorText '  - Apq.Cfg.Yaml' 'White'
 Write-ColorText '  - Apq.Cfg.Toml' 'White'
 Write-ColorText '  - Apq.Cfg.Redis' 'White'
 Write-ColorText '  - Apq.Cfg.Database' 'White'
+Write-ColorText '  - Apq.Cfg.Consul' 'White'
+Write-ColorText '  - Apq.Cfg.Etcd' 'White'
+Write-ColorText '  - Apq.Cfg.Apollo' 'White'
+Write-ColorText '  - Apq.Cfg.Nacos' 'White'
 Write-ColorText '  - Apq.Cfg.SourceGenerator' 'White'
 Write-Host ''
 Write-ColorText "输出目录: $OutputDir" 'Gray'

+ 0 - 0
versions/v1.0.1.md


+ 0 - 0
versions/v1.0.2.md


+ 0 - 0
versions/v1.0.0.md → versions/v1.0.4.md