XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
.github/workflows/publish-packages.yml
+20
-2
Modified
.github/workflows/validate.yml
+20
-2
XFEstudio/XFEExtension
在CI流程中支持排除指定项目构建
在 publish-packages.yml 和 validate.yml 中新增“Prepare build solution”步骤,通过 PowerShell 脚本根据 EXCLUDED_PROJECT_PATH 环境变量动态排除指定项目,生成临时解决方案文件(build.slnx),并用其进行 restore 和 build,提升构建与发布包的灵活性。
63ee519
代码差异
2 个文件
+40
-4
@@ -23,6 +23,7 @@ permissions:
23
23
env:
24
24
DOTNET_VERSION: 10.0.x
25
25
SOLUTION_PATH: XFEExtension.slnx
26
EXCLUDED_PROJECT_PATH: XFEExtension/XFEExtension.csproj
26
27
PROJECT_PATH: XFEExtension.NetCore/XFEExtension.NetCore.csproj
27
28
PACKAGE_OUTPUT_DIR: ${{ github.workspace }}/artifacts/packages
28
29
@@ -59,11 +60,28 @@ jobs:
59
60
echo "value=$version" >> "$GITHUB_OUTPUT"
60
61
echo "PACKAGE_VERSION=$version" >> "$GITHUB_ENV"
61
62
63
- name: Prepare build solution
64
shell: pwsh
65
run: |
66
[xml]$solution = Get-Content "${{ env.SOLUTION_PATH }}" -Raw
67
$excludedProjectPath = "${{ env.EXCLUDED_PROJECT_PATH }}"
68
$projects = @($solution.Solution.Project)
69
70
foreach ($project in $projects) {
71
if ($project.Path -eq $excludedProjectPath) {
72
[void]$project.ParentNode.RemoveChild($project)
73
}
74
}
75
76
$buildSolutionPath = Join-Path "${{ runner.temp }}" "build.slnx"
77
$solution.Save($buildSolutionPath)
78
"BUILD_SOLUTION_PATH=$buildSolutionPath" >> $env:GITHUB_ENV
79
62
80
- name: Restore
63
run: dotnet restore ${{ env.SOLUTION_PATH }}
81
run: dotnet restore ${{ env.BUILD_SOLUTION_PATH }}
64
82
65
83
- name: Build
66
run: dotnet build ${{ env.SOLUTION_PATH }} --configuration Release --no-restore -p:GeneratePackageOnBuild=false -p:ContinuousIntegrationBuild=true -p:Version=${{ env.PACKAGE_VERSION }} -p:PackageVersion=${{ env.PACKAGE_VERSION }}
84
run: dotnet build ${{ env.BUILD_SOLUTION_PATH }} --configuration Release --no-restore -p:GeneratePackageOnBuild=false -p:ContinuousIntegrationBuild=true -p:Version=${{ env.PACKAGE_VERSION }} -p:PackageVersion=${{ env.PACKAGE_VERSION }}
67
85
68
86
- name: Pack
69
87
run: dotnet pack ${{ env.PROJECT_PATH }} --configuration Release --no-build --no-restore --output ${{ env.PACKAGE_OUTPUT_DIR }} -p:GeneratePackageOnBuild=false -p:ContinuousIntegrationBuild=true -p:Version=${{ env.PACKAGE_VERSION }} -p:PackageVersion=${{ env.PACKAGE_VERSION }}
@@ -13,6 +13,7 @@ permissions:
13
13
env:
14
14
DOTNET_VERSION: 10.0.x
15
15
SOLUTION_PATH: XFEExtension.slnx
16
EXCLUDED_PROJECT_PATH: XFEExtension/XFEExtension.csproj
16
17
17
18
jobs:
18
19
build:
@@ -27,8 +28,25 @@ jobs:
27
28
with:
28
29
dotnet-version: ${{ env.DOTNET_VERSION }}
29
30
31
- name: Prepare build solution
32
shell: pwsh
33
run: |
34
[xml]$solution = Get-Content "${{ env.SOLUTION_PATH }}" -Raw
35
$excludedProjectPath = "${{ env.EXCLUDED_PROJECT_PATH }}"
36
$projects = @($solution.Solution.Project)
37
38
foreach ($project in $projects) {
39
if ($project.Path -eq $excludedProjectPath) {
40
[void]$project.ParentNode.RemoveChild($project)
41
}
42
}
43
44
$buildSolutionPath = Join-Path "${{ runner.temp }}" "build.slnx"
45
$solution.Save($buildSolutionPath)
46
"BUILD_SOLUTION_PATH=$buildSolutionPath" >> $env:GITHUB_ENV
47
30
48
- name: Restore
31
run: dotnet restore ${{ env.SOLUTION_PATH }}
49
run: dotnet restore ${{ env.BUILD_SOLUTION_PATH }}
32
50
33
51
- name: Build
34
run: dotnet build ${{ env.SOLUTION_PATH }} --configuration Release --no-restore -p:GeneratePackageOnBuild=false -p:ContinuousIntegrationBuild=true
52
run: dotnet build ${{ env.BUILD_SOLUTION_PATH }} --configuration Release --no-restore -p:GeneratePackageOnBuild=false -p:ContinuousIntegrationBuild=true