Skip to content

Commit f2a9200

Browse files
committed
Added the common project
Changed the pipeline
1 parent 048c62c commit f2a9200

File tree

10 files changed

+105
-141
lines changed

10 files changed

+105
-141
lines changed

build/templates/pipeline.yml build/pipeline.yml

+52-31
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
1-
parameters:
2-
projectName : ''
1+
trigger:
2+
branches:
3+
include:
4+
- master
5+
- dev
6+
paths:
7+
include:
8+
- src/*
9+
10+
name: '$(Date:yyyyMMdd).$(Rev:r)[$(BuildID)]'
311

412
stages:
513

@@ -19,55 +27,67 @@ stages:
1927

2028
steps:
2129
- task: NuGetToolInstaller@1
22-
displayName: 'Use NuGet'
30+
displayName: 'Install NuGet'
2331

2432
- task: NuGetCommand@2
25-
displayName: 'NuGet restore'
33+
displayName: 'Restore NuGet References'
2634
inputs:
2735
restoreSolution: '**\*.sln'
2836

29-
- task: DownloadSecureFile@1
30-
name: Certificate
31-
displayName: 'Download code signing certificate'
32-
inputs:
33-
secureFile: xarial.snk
34-
35-
- task: VSBuild@1
36-
displayName: 'Build and pack preview version'
37-
inputs:
38-
solution: 'src\${{ parameters.projectName }}\*.csproj'
39-
msbuildArgs: '/t:pack /p:OutputPath=$(System.DefaultWorkingDirectory)\build\preview;SignAssembly=true;AssemblyOriginatorKeyFile=$(Certificate.secureFilePath);DelaySign=false;VersionSuffix=$(Build.BuildNumber)'
40-
platform: '$(BuildPlatform)'
41-
configuration: '$(BuildConfiguration)'
42-
43-
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
44-
- task: VSBuild@1
45-
displayName: 'Build and pack release version'
46-
inputs:
47-
solution: 'src\${{ parameters.projectName }}\*.csproj'
48-
msbuildArgs: '/t:pack /p:OutputPath=$(System.DefaultWorkingDirectory)\build\release;SignAssembly=true;AssemblyOriginatorKeyFile=$(Certificate.secureFilePath);DelaySign=false'
49-
platform: '$(BuildPlatform)'
50-
configuration: '$(BuildConfiguration)'
51-
5237
- task: VSBuild@1
5338
displayName: 'Build test projects'
5439
inputs:
55-
solution: 'tests\${{ parameters.projectName }}.Tests\*.csproj'
40+
solution: 'tests\*.Tests\*.csproj'
5641
platform: '$(BuildPlatform)'
5742
configuration: '$(BuildConfiguration)'
58-
43+
5944
- task: VSTest@2
60-
displayName: 'Unit test'
45+
displayName: 'Run unit tests'
6146
inputs:
6247
testAssemblyVer2: |
6348
**\$(BuildConfiguration)\**\*tests*.dll
6449
!**\obj\**
6550
platform: '$(BuildPlatform)'
6651
configuration: '$(BuildConfiguration)'
52+
53+
- task: DownloadSecureFile@1
54+
name: Certificate
55+
displayName: 'Download code signing certificate'
56+
inputs:
57+
secureFile: xarial.snk
58+
59+
- task: VSBuild@1
60+
displayName: 'Build projects'
61+
inputs:
62+
solution: 'src/**/*.csproj'
63+
msbuildArgs: '/p:SignAssembly=true;AssemblyOriginatorKeyFile=$(Certificate.secureFilePath);DelaySign=false;BuildNumber=.$(Build.BuildID)'
64+
platform: '$(BuildPlatform)'
65+
configuration: '$(BuildConfiguration)'
66+
67+
- ${{ if and(eq(variables['Build.SourceBranch'], 'refs/heads/dev'), ne(variables['Build.Reason'], 'PullRequest')) }}:
68+
- task: DotNetCoreCLI@2
69+
displayName: 'Pack preview versions'
70+
inputs:
71+
command: pack
72+
packagesToPack: 'src/**/*.csproj'
73+
configurationToPack: $(BuildConfiguration)
74+
outputDir: $(Build.ArtifactStagingDirectory)/packages/preview
75+
nobuild: true
76+
buildProperties: 'VersionSuffix=preview.$(Build.BuildId)'
77+
78+
- ${{ if and(eq(variables['Build.SourceBranch'], 'refs/heads/master'), ne(variables['Build.Reason'], 'PullRequest')) }}:
79+
- task: DotNetCoreCLI@2
80+
displayName: 'Pack production versions'
81+
inputs:
82+
command: pack
83+
packagesToPack: 'src/**/*.csproj'
84+
configurationToPack: $(BuildConfiguration)
85+
outputDir: $(Build.ArtifactStagingDirectory)/packages/release
86+
nobuild: true
6787

6888
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
6989
- task: CopyFiles@2
70-
displayName: 'Copy Nuget Package'
90+
displayName: 'Copy NuGet packages to artifacts folder'
7191
inputs:
7292
SourceFolder: '$(system.defaultworkingdirectory)/build'
7393
Contents: |
@@ -77,6 +97,7 @@ stages:
7797

7898
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
7999
- publish: '$(Build.ArtifactStagingDirectory)/packages'
100+
displayName: 'Publish packages artifact'
80101
artifact: 'packages'
81102

82103
- stage: 'PublishPreviewNuGetPackage'

build/utils-pipeline.yml

-13
This file was deleted.

build/wpf-pipeline.yml

-13
This file was deleted.

common/common.props

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<Project>
2+
<PropertyGroup>
3+
<OutputPath>..\..\_build\</OutputPath>
4+
<Product>xToolkit</Product>
5+
<BuildNumber></BuildNumber>
6+
<VersionPrefix>0.4.0$(BuildNumber)</VersionPrefix>
7+
<Company>Xarial Pty Limited</Company>
8+
<Copyright>Copyright © Xarial Pty Limited 2022</Copyright>
9+
<Authors>Xarial</Authors>
10+
<PackageProjectUrl>https://xtoolkit.xarial.com</PackageProjectUrl>
11+
<RepositoryUrl>https://github.com/xarial/xtoolkit</RepositoryUrl>
12+
<RepositoryType>git</RepositoryType>
13+
<SignAssembly>false</SignAssembly>
14+
<PublishRepositoryUrl>true</PublishRepositoryUrl>
15+
<AssemblyOriginatorKeyFile></AssemblyOriginatorKeyFile>
16+
<EmbedUntrackedSources>true</EmbedUntrackedSources>
17+
<IncludeSymbols>true</IncludeSymbols>
18+
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
19+
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
20+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
21+
</PropertyGroup>
22+
<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
23+
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
24+
<DeterministicSourcePaths Condition="'$(EnableSourceLink)' == ''">false</DeterministicSourcePaths>
25+
</PropertyGroup>
26+
</Project>

src/Utils/CommandLineUtils.cs

+9
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,21 @@
1212

1313
namespace Xarial.XToolkit
1414
{
15+
/// <summary>
16+
/// Provides utility functions for working with command line
17+
/// </summary>
1518
public static class CommandLineUtils
1619
{
1720
[DllImport("shell32.dll", SetLastError = true)]
1821
private static extern IntPtr CommandLineToArgvW(
1922
[MarshalAs(UnmanagedType.LPWStr)] string lpCmdLine, out int pNumArgs);
2023

24+
/// <summary>
25+
/// Extracts arguments from the command line string
26+
/// </summary>
27+
/// <param name="cmdLineArgs">Command line arguments</param>
28+
/// <returns>Separated arguments</returns>
29+
/// <exception cref="Exception"></exception>
2130
public static string[] ParseCommandLine(string cmdLineArgs)
2231
{
2332
int count;

src/Utils/FileSystemUtils.cs

+12-12
Original file line numberDiff line numberDiff line change
@@ -114,18 +114,6 @@ public static string GetRelativePath(string thisPath, string relativeToDir)
114114
}
115115
}
116116

117-
private static string NormalizeDirectoryPath(string path)
118-
{
119-
if (!path.EndsWith("\\"))
120-
{
121-
return path + "\\";
122-
}
123-
else
124-
{
125-
return path;
126-
}
127-
}
128-
129117
/// <summary>
130118
/// Opens file explorer at the specified folder
131119
/// </summary>
@@ -183,5 +171,17 @@ public static string ReplaceIllegalRelativePathCharacters(string path, Func<char
183171

184172
return res.ToString();
185173
}
174+
175+
private static string NormalizeDirectoryPath(string path)
176+
{
177+
if (!path.EndsWith("\\"))
178+
{
179+
return path + "\\";
180+
}
181+
else
182+
{
183+
return path;
184+
}
185+
}
186186
}
187187
}

src/Utils/Helpers/JsonFileSerializer.cs

-28
This file was deleted.

src/Utils/Services/UserSettings/Converters/SettingsJsonConverter.cs.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,7 @@ protected SettingsJsonConverter(Type settsType, bool canRead, bool canWrite, Ver
3434

3535
public override bool CanWrite => m_CanWrite;
3636

37-
public override bool CanConvert(Type objectType)
38-
{
39-
return objectType == m_SettsType;
40-
}
37+
public override bool CanConvert(Type objectType) => objectType == m_SettsType;
4138

4239
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
4340
{

src/Utils/Utils.csproj

+1-18
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,15 @@
44
<RootNamespace>Xarial.XToolkit</RootNamespace>
55
<AssemblyName>Xarial.XToolkit</AssemblyName>
66
<TargetFrameworks>net6.0;netstandard2.1;net461</TargetFrameworks>
7-
<SignAssembly>false</SignAssembly>
8-
<PublishRepositoryUrl>true</PublishRepositoryUrl>
9-
<EmbedUntrackedSources>true</EmbedUntrackedSources>
10-
<IncludeSymbols>true</IncludeSymbols>
11-
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
12-
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
137
<PackageId>Xarial.XToolkit</PackageId>
14-
<VersionPrefix>0.4.0</VersionPrefix>
15-
<Authors>Xarial</Authors>
16-
<Product>xToolkit</Product>
17-
<Copyright>© 2022 Xarial Pty Limited</Copyright>
18-
<PackageProjectUrl>https://xtoolkit.xarial.com</PackageProjectUrl>
19-
<AssemblyOriginatorKeyFile></AssemblyOriginatorKeyFile>
20-
<Company>Xarial Pty Limited</Company>
21-
<RepositoryUrl>https://github.com/xarial/xtoolkit</RepositoryUrl>
228
<PackageTags>toolkit,settings,reflection</PackageTags>
239
<Description>Collection of utility functions</Description>
24-
<RepositoryType>git</RepositoryType>
2510
<PackageIcon>icon.png</PackageIcon>
2611
<PackageIconUrl>https://xarial.com/xtoolkit-icon.png</PackageIconUrl>
2712
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
2813
</PropertyGroup>
2914

30-
<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
31-
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
32-
</PropertyGroup>
15+
<Import Project="..\..\common\common.props" />
3316

3417
<ItemGroup>
3518
<None Include="..\..\data\icon.png">

src/Wpf/Wpf.csproj

+4-22
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,21 @@
11
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
22

33
<PropertyGroup>
4-
<UseWPF>true</UseWPF>
5-
<UseWindowsForms>true</UseWindowsForms>
64
<TargetFrameworks>net6.0-windows;netcoreapp3.1;net461</TargetFrameworks>
75
<RootNamespace>Xarial.XToolkit.Wpf</RootNamespace>
86
<AssemblyName>Xarial.XToolkit.Wpf</AssemblyName>
9-
<SignAssembly>false</SignAssembly>
10-
<PublishRepositoryUrl>true</PublishRepositoryUrl>
11-
<EmbedUntrackedSources>true</EmbedUntrackedSources>
12-
<IncludeSymbols>true</IncludeSymbols>
13-
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
14-
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
157
<PackageId>Xarial.XToolkit.Wpf</PackageId>
16-
<VersionPrefix>0.4.0</VersionPrefix>
17-
<Authors>Xarial</Authors>
18-
<Product>xToolkit</Product>
19-
<Copyright>© 2022 Xarial Pty Limited</Copyright>
20-
<PackageProjectUrl>https://xtoolkit.xarial.com</PackageProjectUrl>
21-
<AssemblyOriginatorKeyFile></AssemblyOriginatorKeyFile>
22-
<Company>Xarial Pty Limited</Company>
23-
<RepositoryUrl>https://github.com/xarial/xtoolkit</RepositoryUrl>
248
<PackageTags>toolkit,wpf,controls</PackageTags>
259
<Description>Collection of WPF Controls and utilities</Description>
26-
<RepositoryType>git</RepositoryType>
2710
<PackageIcon>icon.png</PackageIcon>
2811
<PackageIconUrl>https://xarial.com/xtoolkit-icon.png</PackageIconUrl>
2912
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
13+
<UseWPF>true</UseWPF>
14+
<UseWindowsForms>true</UseWindowsForms>
3015
</PropertyGroup>
3116

32-
<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
33-
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
34-
<DeterministicSourcePaths Condition="'$(EnableSourceLink)' == ''">false</DeterministicSourcePaths>
35-
</PropertyGroup>
36-
17+
<Import Project="..\..\common\common.props" />
18+
3719
<ItemGroup>
3820
<None Include="..\..\data\icon.png">
3921
<Pack>True</Pack>

0 commit comments

Comments
 (0)