Skip to content

Commit bf26a62

Browse files
committed
improve testing released packages
1 parent fcff0e2 commit bf26a62

File tree

2 files changed

+106
-33
lines changed

2 files changed

+106
-33
lines changed

tests/Directory.Build.targets

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,8 @@ SPDX-FileCopyrightText: 2022 smdn <smdn@smdn.jp>
33
SPDX-License-Identifier: MIT
44
-->
55
<Project>
6-
<PropertyGroup>
7-
<CanTestReleasedPackage Condition=" '$(CanTestReleasedPackage)' == '' ">true</CanTestReleasedPackage>
8-
</PropertyGroup>
6+
<Import Project="$(MSBuildThisFileDirectory)TestReleasedPackage.targets" Condition=" '$(IsTestProject)' == 'true' " />
97

10-
<Choose>
11-
<When Condition=" '$(TestReleasedPackage)' == 'true' and '$(CanTestReleasedPackage)' == 'true' ">
12-
<ItemGroup Label="add test target package reference">
13-
<PackageReference
14-
Condition=" '$(SmdnTestTargetProjectName)' != '' "
15-
Include="$(SmdnTestTargetProjectName)"
16-
Version="*-*"
17-
/>
18-
</ItemGroup>
19-
</When>
20-
<Otherwise>
21-
<ItemGroup
22-
Label="add test target project reference"
23-
Condition=" '$(SmdnTestTargetProjectReferenceManuallyIncluded)' != 'true' "
24-
>
25-
<ProjectReference
26-
Condition=" '$(SmdnTestTargetProjectFullPath)' != '' and Exists('$(SmdnTestTargetProjectFullPath)') "
27-
Include="$(SmdnTestTargetProjectFullPath)"
28-
/>
29-
</ItemGroup>
30-
</Otherwise>
31-
</Choose>
32-
33-
<Target
34-
Name="WarnCannotTestReleasedPackage"
35-
BeforeTargets="BeforeBuild"
36-
Condition=" '$(TestReleasedPackage)' == 'true' and '$(CanTestReleasedPackage)' != 'true' "
37-
>
38-
<Warning Text="cannot test with released package"/>
39-
</Target>
408

419
<ImportGroup>
4210
<Import Project="$(SmdnProjectAssets_TargetsImports)" />

tests/TestReleasedPackage.targets

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
<!--
2+
SPDX-FileCopyrightText: 2022 smdn <smdn@smdn.jp>
3+
SPDX-License-Identifier: MIT
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<CanTestReleasedPackage Condition=" '$(CanTestReleasedPackage)' == '' ">true</CanTestReleasedPackage>
8+
<_RunTestWithReleasedPackage
9+
Condition="
10+
'$(TestReleasedPackage)' == 'true' and
11+
'$(CanTestReleasedPackage)' == 'true' and
12+
'$(SmdnTestTargetProjectName)' != ''
13+
"
14+
>true</_RunTestWithReleasedPackage>
15+
</PropertyGroup>
16+
17+
<Choose>
18+
<When Condition=" '$(_RunTestWithReleasedPackage)' == 'true' ">
19+
<ItemGroup Label="add test target package reference">
20+
<PackageReference
21+
Include="$(SmdnTestTargetProjectName)"
22+
Version="*-*"
23+
/>
24+
</ItemGroup>
25+
</When>
26+
<Otherwise>
27+
<ItemGroup Label="add test target project reference">
28+
<ProjectReference
29+
Condition=" '$(SmdnTestTargetProjectFullPath)' != '' and Exists('$(SmdnTestTargetProjectFullPath)') "
30+
Include="$(SmdnTestTargetProjectFullPath)"
31+
/>
32+
</ItemGroup>
33+
</Otherwise>
34+
</Choose>
35+
36+
<Target
37+
Name="WarnCannotTestReleasedPackage"
38+
BeforeTargets="BeforeBuild"
39+
Condition=" '$(TestReleasedPackage)' == 'true' and '$(CanTestReleasedPackage)' != 'true' "
40+
>
41+
<Warning Text="cannot test with released package"/>
42+
</Target>
43+
44+
<!--
45+
ref: https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Core/NuGet.Build.Tasks/NuGet.targets
46+
-->
47+
<Target
48+
Name="UpdateTestTargetPackageVersionToLatest"
49+
BeforeTargets="CollectPackageReferences"
50+
Condition="
51+
'$(_RunTestWithReleasedPackage)' == 'true' and
52+
('$(TargetFrameworks)' == '' or '$(TargetFramework)' == '')
53+
"
54+
>
55+
<MSBuild Projects="$(SmdnTestTargetProjectFullPath)" Targets="GetNuGetPackageLatestVersion">
56+
<Output TaskParameter="TargetOutputs" PropertyName="SmdnTestTargetPackageVersionLatest" />
57+
</MSBuild>
58+
59+
<ItemGroup>
60+
<PackageReference
61+
Update="$(SmdnTestTargetProjectName)"
62+
Version="$(SmdnTestTargetPackageVersionLatest)"
63+
Condition=" '$(SmdnTestTargetPackageVersionLatest)' != '' "
64+
/>
65+
</ItemGroup>
66+
67+
<Message
68+
Text="Updated PackageReference version: $(SmdnTestTargetProjectName)-$(SmdnTestTargetPackageVersionLatest)"
69+
Importance="high"
70+
Condition=" '$(SmdnTestTargetPackageVersionLatest)' != '' "
71+
/>
72+
</Target>
73+
74+
<Target
75+
Name="ListUpPackageReferencesToGitHubStepSummary"
76+
AfterTargets="ResolveAssemblyReferences"
77+
Condition="
78+
'$(_RunTestWithReleasedPackage)' == 'true' and
79+
'$(GITHUB_STEP_SUMMARY)' != '' and
80+
'$(TargetFramework)' != ''
81+
"
82+
>
83+
<ItemGroup>
84+
<_NuGetPackageReferences Include="@(ReferenceCopyLocalPaths)" Condition="'%(ReferenceCopyLocalPaths.NuGetPackageId)' != ''" />
85+
<_NuGetPackageReferenceTableMarkdownLines
86+
Include="|%(_NuGetPackageReferences.NuGetPackageId)|%(_NuGetPackageReferences.NuGetPackageVersion)|"
87+
Condition=" '@(_NuGetPackageReferences)' != '' "
88+
/>
89+
</ItemGroup>
90+
91+
<PropertyGroup>
92+
<_NuGetPackageReferenceTable><![CDATA[
93+
<details>
94+
<summary>List of PackageReference ($(TargetFramework))</summary>
95+
96+
|Package ID|Package version|
97+
|----------|---------------|
98+
@(_NuGetPackageReferenceTableMarkdownLines, '%0A')
99+
</details>
100+
]]></_NuGetPackageReferenceTable>
101+
</PropertyGroup>
102+
103+
<GitHubActionsStepSummaryAppendContent Contents="$(_NuGetPackageReferenceTable)" />
104+
</Target>
105+
</Project>

0 commit comments

Comments
 (0)