Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • Experiment/NewBuild
  • Hotfix/1796-projectDdos
  • Issue/1910-MigrationtoNET6.0
  • Issue/2309-docs
  • Product/1287-dotnet5Sharepoint
  • Product/407-net5migration
  • Sprint/2021-01
  • Sprint/2021-03
  • Sprint/2022-01
  • Topic/1226-configLibraryMigration
  • Topic/1334-dotnet5migration
  • dev
  • gitkeep
  • master
  • v1.0.0
  • v1.1.0
  • v1.2.0
  • v1.2.1
  • v1.3.0
  • v1.3.1
  • v1.4.0
  • v1.5.0
  • v1.6.0
  • v2.0.0
  • v2.1.0
  • v2.1.1
26 results

Target

Select target project
  • coscine/backend/libraries/configuration
1 result
Select Git revision
  • Experiment/NewBuild
  • Hotfix/1796-projectDdos
  • Issue/1910-MigrationtoNET6.0
  • Issue/2309-docs
  • Product/1287-dotnet5Sharepoint
  • Product/407-net5migration
  • Sprint/2021-01
  • Sprint/2021-03
  • Sprint/2022-01
  • Topic/1226-configLibraryMigration
  • Topic/1334-dotnet5migration
  • dev
  • gitkeep
  • master
  • v1.0.0
  • v1.1.0
  • v1.2.0
  • v1.2.1
  • v1.3.0
  • v1.3.1
  • v1.4.0
  • v1.5.0
  • v1.6.0
  • v2.0.0
  • v2.1.0
  • v2.1.1
26 results
Show changes
Commits on Source (12)
Showing
with 332 additions and 219 deletions
...@@ -262,5 +262,6 @@ __pycache__/ ...@@ -262,5 +262,6 @@ __pycache__/
*.pyc *.pyc
#cake #cake
tools/ tools/*
dist/ !tools/packages.config
\ No newline at end of file dist/
stages: stages:
- build - build
- test - test
...@@ -8,30 +6,30 @@ stages: ...@@ -8,30 +6,30 @@ stages:
- build-release - build-release
- semantic-release - semantic-release
- release - release
build: build:
before_script:
- PowerShell .\build.ps1 -Target Clean
- PowerShell .\build.ps1 -Target Restore-NuGet-Packages
stage: build stage: build
script: script:
- PowerShell .\build.ps1 -Target Build - PowerShell .\build.ps1 -Target Build -Configuration Debug
variables:
GIT_STRATEGY: clone
except: except:
variables: variables:
- $GITLAB_USER_ID == $GIT_BOT_USER_ID - $GITLAB_USER_ID == $GIT_BOT_USER_ID
test: test:
stage: test stage: test
script: script:
- PowerShell .\build.ps1 -Target Resharper - PowerShell .\build.ps1 -Target LinterAndTest -Configuration Debug
- PowerShell .\build.ps1 -Target Run-Unit-Tests
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
dependencies: dependencies:
- build - build
artifacts: artifacts:
reports: reports:
junit: TestResult.xml junit: "./Artifacts/TestResults.xml"
paths:
- "./Artifacts/*"
except: except:
variables: variables:
- $GITLAB_USER_ID == $GIT_BOT_USER_ID - $GITLAB_USER_ID == $GIT_BOT_USER_ID
...@@ -39,7 +37,7 @@ test: ...@@ -39,7 +37,7 @@ test:
update-assembly-info: update-assembly-info:
stage: update-assembly-info stage: update-assembly-info
script: script:
- PowerShell .\build.ps1 -Target Update-Assembly-Info - PowerShell .\build.ps1 -Target UpdateAssemblyInfo
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
dependencies: dependencies:
...@@ -51,12 +49,10 @@ update-assembly-info: ...@@ -51,12 +49,10 @@ update-assembly-info:
- $GITLAB_USER_ID == $GIT_BOT_USER_ID - $GITLAB_USER_ID == $GIT_BOT_USER_ID
build-release: build-release:
before_script:
- PowerShell .\build.ps1 -Target Clean
- PowerShell .\build.ps1 -Target Restore-NuGet-Packages
stage: build-release stage: build-release
script: script:
- PowerShell .\build.ps1 -Target Build-Release - PowerShell .\build.ps1 -Target Build -Configuration Release
- PowerShell .\build.ps1 -Configuration Release -Target NugetPack
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
dependencies: dependencies:
...@@ -80,11 +76,11 @@ docs: ...@@ -80,11 +76,11 @@ docs:
except: except:
variables: variables:
- $GITLAB_USER_ID == $GIT_BOT_USER_ID - $GITLAB_USER_ID == $GIT_BOT_USER_ID
semantic-release: semantic-release:
stage: semantic-release stage: semantic-release
script: script:
- PowerShell .\build.ps1 -Target Semantic-Release - PowerShell .\build.ps1 -Target SemanticRelease
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
dependencies: dependencies:
...@@ -94,15 +90,18 @@ semantic-release: ...@@ -94,15 +90,18 @@ semantic-release:
except: except:
variables: variables:
- $GITLAB_USER_ID == $GIT_BOT_USER_ID - $GITLAB_USER_ID == $GIT_BOT_USER_ID
release: release:
before_script:
stage: release stage: release
script: script:
- PowerShell .\build.ps1 -Target Build-Release - PowerShell .\build.ps1 -Target Build -Configuration Release
- PowerShell .\build.ps1 -Configuration Release -Target NugetPack
- PowerShell .\build.ps1 -Configuration Release -Target NugetPush --nugetApiKey="$NUGET_API_KEY"
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: clone
artifacts: artifacts:
paths: paths:
- dist - "./Artifacts/*"
only: only:
- tags - tags
...@@ -20,4 +20,4 @@ ...@@ -20,4 +20,4 @@
"message": "Chore: ${nextRelease.version}\n\n${nextRelease.notes}" "message": "Chore: ${nextRelease.version}\n\n${nextRelease.notes}"
}] }]
] ]
} }
\ No newline at end of file
## C# cs-configuration ## Configuration
This project represents a class library for communicating with different key-value stores. This project represents a class library for communicating with different key-value stores.
\ No newline at end of file
#tool nuget:?package=NUnit.ConsoleRunner&version=3.9.0 #tool nuget:?package=NUnit.ConsoleRunner&version=3.9.0
#tool nuget:?package=JetBrains.ReSharper.CommandLineTools&version=2018.3.4 #tool nuget:?package=JetBrains.ReSharper.CommandLineTools&version=2018.3.4
#tool nuget:?package=vswhere&version=2.6.7
#addin nuget:https://api.nuget.org/v3/index.json?package=Cake.Npx&version=1.3.0 #addin nuget:https://api.nuget.org/v3/index.json?package=Cake.Npx&version=1.3.0
#addin nuget:https://api.nuget.org/v3/index.json?package=Cake.Issues&version=0.6.2 #addin nuget:https://api.nuget.org/v3/index.json?package=Cake.Issues&version=0.6.2
#addin nuget:https://api.nuget.org/v3/index.json?package=Cake.Issues.InspectCode&version=0.6.1 #addin nuget:https://api.nuget.org/v3/index.json?package=Cake.Issues.InspectCode&version=0.6.1
#addin nuget:https://api.nuget.org/v3/index.json?package=Cake.FileHelpers&version=3.1.0 #addin nuget:https://api.nuget.org/v3/index.json?package=Cake.FileHelpers&version=3.1.0
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// ARGUMENTS // ARGUMENTS
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
var target = Argument("target", "Default"); var target = Argument("target", "Default");
var configuration = Argument("configuration", "Release"); var configuration = Argument("configuration", "Release");
var nugetApiKey = Argument<string>("nugetApiKey", null);
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// PREPARATION // PREPARATION
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Define directories. // Define directories.
string projectName; var projects = GetFiles("./**/*.csproj");
string projectPath; var artifactsDir = Directory("./Artifacts");
DirectoryPath buildDir; string nupkgDir;
FilePath solutionFile; var solutionFile = GetFiles("./**/*.sln").First();
var projectName = solutionFile.GetFilenameWithoutExtension().ToString();
var assemblyInfoSubPath = "Properties/AssemblyInfo.cs";
var nugetSource = "https://api.nuget.org/v3/index.json";
// get latest MSBuild version
var vsLatest = VSWhereLatest();
var msBuildPathX64 = (vsLatest == null) ? null : vsLatest.CombineWithFilePath("./MSBuild/Current/Bin/MSBuild.exe");
// Error rules for resharper // Error rules for resharper
// Example: {"InconsistentNaming", "RedundantUsingDirective"}; // Example: {"InconsistentNaming", "RedundantUsingDirective"};
string [] resharperErrorRules = {}; string[] resharperErrorRules = {};
// Paths to exclude from dupFinder
List<string> dupFinderExcludePatterns = projects.Select( x => $"{x.GetDirectory().ToString()}/{assemblyInfoSubPath}").ToList();
string[] dupFinderExcludeCodeRegionsByNameSubstring = { "DupFinder Exclusion" };
Action <NpxSettings> requiredSemanticVersionPackages = settings =>
settings.AddPackage("semantic-release")
.AddPackage("@semantic-release/commit-analyzer")
.AddPackage("@semantic-release/release-notes-generator")
.AddPackage("@semantic-release/gitlab")
.AddPackage("@semantic-release/git")
.AddPackage("@semantic-release/exec")
.AddPackage("conventional-changelog-eslint");
///////////////////////////////////////////////////////////////////////////////
// SETUP / TEARDOWN
///////////////////////////////////////////////////////////////////////////////
Setup(context =>{
nupkgDir = $"{artifactsDir.ToString()}/nupkg";
Information("Running tasks...");
});
Action<NpxSettings> requiredSemanticVersionPackages = settings => settings Teardown(context =>{
.AddPackage("semantic-release") Information("Finished running tasks.");
.AddPackage("@semantic-release/commit-analyzer") });
.AddPackage("@semantic-release/release-notes-generator")
.AddPackage("@semantic-release/gitlab")
.AddPackage("@semantic-release/git")
.AddPackage("@semantic-release/exec")
.AddPackage("conventional-changelog-eslint");
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// TASKS // TASKS
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
Task("Clean")
Task("Get-Project-Name") .Description("Cleans all build and artifacts directories")
.Does(() => .Does(() =>{
{ var settings = new DeleteDirectorySettings {
var solutions = GetFiles("./**/*.sln"); Recursive = true,
projectName = solutions.First().GetFilenameWithoutExtension().ToString(); Force = true
Information("Project Name: {0}", projectName); };
solutionFile = solutions.First().ToString(); var directoriesToDelete = new List<DirectoryPath>();
Information("Solution File: {0}", solutionFile.ToString());
projectPath = Context.Environment.WorkingDirectory.ToString().ToString() + "/src"; foreach(var project in projects) {
Information("Project Directory: {0}", projectPath); directoriesToDelete.Add(Directory($"{project.GetDirectory()}/obj"));
directoriesToDelete.Add(Directory($"{project.GetDirectory()}/bin"));
}
buildDir = Directory(projectPath + "/" + projectName + "/bin") + Directory(configuration); directoriesToDelete.Add(artifactsDir);
Information("Build Directory: {0}", buildDir.ToString());
foreach(var dir in directoriesToDelete) {
if (DirectoryExists(dir)) {
Information($"Cleaning path {dir} ...");
DeleteDirectory(dir, settings);
}
}
}); });
Task("Clean") Task("Restore")
.IsDependentOn("Get-Project-Name") .Does(() =>{
.Does(() => // Restore all NuGet packages.
{ Information($"Restoring {solutionFile}...");
CleanDirectory(buildDir); NuGetRestore(solutionFile, new NuGetRestoreSettings {
CleanDirectory("./dist"); NoCache = true
});
});
Task("DupFinder")
.Description("Find duplicates in the code")
.Does(() =>{
var settings = new DupFinderSettings() {
ShowStats = true,
ShowText = true,
OutputFile = $"{artifactsDir}/dupfinder.xml",
ExcludeCodeRegionsByNameSubstring = dupFinderExcludeCodeRegionsByNameSubstring,
ExcludePattern = dupFinderExcludePatterns.ToArray(),
ThrowExceptionOnFindingDuplicates = true
};
DupFinder(solutionFile, settings);
});
Task("InspectCode")
.Description("Inspect the code using Resharper's rule set")
.Does(() =>{
var settings = new InspectCodeSettings() {
SolutionWideAnalysis = true,
OutputFile = $"{artifactsDir}/inspectcode.xml",
ThrowExceptionOnFindingViolations = false
};
InspectCode(solutionFile, settings);
var issues = ReadIssues(
InspectCodeIssuesFromFilePath($"{artifactsDir}/inspectcode.xml"), Context.Environment.WorkingDirectory);
Information("{0} issues are found.", issues.Count());
var errorIssues = issues.Where(issue =>resharperErrorRules.Any(issue.Rule.Contains)).ToList();
if (errorIssues.Any()) {
var errorMessage = errorIssues.Aggregate(new StringBuilder(), (stringBuilder, issue) =>stringBuilder.AppendFormat("FileName: {0} Line: {1} Message: {2}{3}", issue.AffectedFileRelativePath, issue.Line, issue.Message, Environment.NewLine));
throw new CakeException($"{errorIssues.Count} errors detected: {Environment.NewLine}{errorMessage}.");
}
}); });
Task("Restore-NuGet-Packages") Task("Test")
.IsDependentOn("Get-Project-Name") .Does(() =>{
.Does(() => NUnit3($"./src/**/bin/{configuration}/*.Tests.dll", new NUnit3Settings {
{ // generate the xml file
NuGetRestore(solutionFile); NoResults = false,
Results = new NUnit3Result[] {
new NUnit3Result() {
FileName = $"{artifactsDir}/TestResults.xml",
Transform = Context.Environment.WorkingDirectory + "/nunit3-junit.xslt"
}
}
});
}); });
Task("Resharper") Task("NugetPush")
.IsDependentOn("Get-Project-Name") .Does(() =>{
.Does(() => var nupkgs = GetFiles($"{nupkgDir}/*.nupkg");
{
FilePath dupLog = Context.Environment.WorkingDirectory + "/Resharper/dupfinder.xml"; Information("Need to push {0} packages", nupkgs.Count);
FilePath inspectLog = Context.Environment.WorkingDirectory + "/Resharper/inspectcode.xml"; foreach(var nupkg in nupkgs) {
Information("Pushing {0}", nupkg);
DupFinder(solutionFile, new DupFinderSettings() { NuGetPush(nupkg, new NuGetPushSettings {
OutputFile = dupLog.ToString() Source = nugetSource,
}); ApiKey = nugetApiKey
});
Information("DupFinder Log:{0}{1}", Environment.NewLine, FileReadText(dupLog)); }
InspectCode(solutionFile, new InspectCodeSettings() {
OutputFile = inspectLog.ToString()
});
var issues = ReadIssues(
InspectCodeIssuesFromFilePath(inspectLog.ToString()),
Context.Environment.WorkingDirectory);
Information("{0} issues are found.", issues.Count());
Information("InspectCode Log:{0}{1}", Environment.NewLine, FileReadText(inspectLog));
var errorIssues = issues.Where(issue => resharperErrorRules.Any(issue.Rule.Contains)).ToList();
if(errorIssues.Any())
{
var errorMessage = errorIssues.Aggregate(new StringBuilder(), (stringBuilder, issue) => stringBuilder.AppendFormat("FileName: {0} Line: {1} Message: {2}{3}", issue.AffectedFileRelativePath, issue.Line, issue.Message, Environment.NewLine));
throw new CakeException($"{errorIssues.Count} errors detected: {Environment.NewLine}{errorMessage}.");
}
}); });
Task("Update-Assembly-Info") Task("NugetPack")
.IsDependentOn("Get-Project-Name") .Does(() =>{
.Does(() => foreach(var project in projects) {
{ var nuspec = $"{project.GetDirectory()}/{project.GetFilenameWithoutExtension()}.nuspec";
if(!project.ToString().EndsWith(".Tests")
Information("Running semantic-release in dry run mode to extract next semantic version number"); && FileExists(nuspec))
{
string[] semanticReleaseOutput; Information("Packing {0}...", nuspec);
Npx("semantic-release", "--dry-run", requiredSemanticVersionPackages, out semanticReleaseOutput);
Information(string.Join(Environment.NewLine, semanticReleaseOutput));
if(!DirectoryExists(nupkgDir)) {
var nextSemanticVersionNumber = ExtractNextSemanticVersionNumber(semanticReleaseOutput); CreateDirectory(nupkgDir);
}
if (nextSemanticVersionNumber == null) {
Warning("There are no relevant changes. AssemblyInfo won't be updated!"); NuGetPack(project.ToString() ,new NuGetPackSettings
} else { {
Information("Next semantic version number is {0}", nextSemanticVersionNumber); OutputDirectory = nupkgDir,
Properties = new Dictionary<string, string> { {"Configuration", "Release"}}
var assemblyVersion = $"{nextSemanticVersionNumber}.0"; });
}
CreateAssemblyInfo(projectPath + "/" + projectName + "/Properties/AssemblyInfo.cs", new AssemblyInfoSettings{ }
Product = projectName,
Title = projectName,
Company = "RWTH Aachen University IT Center",
Version = assemblyVersion,
FileVersion = assemblyVersion,
InformationalVersion = assemblyVersion,
Copyright = "RWTH Aachen University IT Center " + DateTime.Now.Year
});
}
}); });
Task("Build-Release")
.IsDependentOn("Get-Project-Name") Task("UpdateAssemblyInfo")
.Does(() => .Does(() =>{
{ Information("Running semantic-release in dry run mode to extract next semantic version number");
if(IsRunningOnWindows())
{ string[] semanticReleaseOutput;
// Use MSBuild Npx("semantic-release", "--dry-run", requiredSemanticVersionPackages, out semanticReleaseOutput);
MSBuild(solutionFile, settings =>
{ Information(string.Join(Environment.NewLine, semanticReleaseOutput));
settings.SetConfiguration(configuration);
settings.WithProperty("DebugSymbols", "false"); var nextSemanticVersionNumber = ExtractNextSemanticVersionNumber(semanticReleaseOutput);
settings.WithProperty("DebugType", "None");
}); if (nextSemanticVersionNumber == null) {
} Warning("There are no relevant changes. AssemblyInfo won't be updated!");
else } else {
{ Information("Next semantic version number is {0}", nextSemanticVersionNumber);
// Use XBuild
XBuild(solutionFile, settings => var assemblyVersion = $"{nextSemanticVersionNumber}.0";
{
settings.SetConfiguration(configuration); foreach(var project in projects) {
settings.WithProperty("DebugSymbols", "false"); CreateAssemblyInfo($"{project.GetDirectory()}/{assemblyInfoSubPath}", new AssemblyInfoSettings {
settings.WithProperty("DebugType", "None"); Product = project.GetFilenameWithoutExtension().ToString(),
}); Title = project.GetFilenameWithoutExtension().ToString(),
} Company = "IT Center, RWTH Aachen University",
CopyDirectory(buildDir, "./dist"); Version = assemblyVersion,
FileVersion = assemblyVersion,
InformationalVersion = assemblyVersion,
Copyright = $"{DateTime.Now.Year} IT Center, RWTH Aachen University",
Description = $"{project.GetFilenameWithoutExtension().ToString()} is a part of the CoScInE group."
});
}
}
}); });
Task("Build") Task("Build")
.IsDependentOn("Get-Project-Name") .IsDependentOn("Clean")
.Does(() => .IsDependentOn("Restore")
{ .Does(() =>{
if(IsRunningOnWindows()) if (IsRunningOnWindows()) {
{ var frameworkSettingsWindows = new MSBuildSettings {
// Use MSBuild Configuration = configuration,
MSBuild(solutionFile, settings => Restore = true
{ };
settings.SetConfiguration(configuration);
settings.WithProperty("RunCodeAnalysis", "true"); frameworkSettingsWindows.ToolPath = msBuildPathX64;
}); frameworkSettingsWindows.WorkingDirectory = Context.Environment.WorkingDirectory;
}
else if (configuration.Equals("Release")) {
{ frameworkSettingsWindows.WithProperty("DebugSymbols", "false");
// Use XBuild frameworkSettingsWindows.WithProperty("DebugType", "None");
XBuild(solutionFile, settings => }
{ // Use MSBuild
settings.SetConfiguration(configuration); Information($"Building {solutionFile}");
settings.WithProperty("RunCodeAnalysis", "true"); MSBuild(solutionFile, frameworkSettingsWindows);
}); }
} else {
}); var frameworkSettingsUnix = new XBuildSettings {
Configuration = configuration
};
if (configuration.Equals("Release")) {
frameworkSettingsUnix.WithProperty("DebugSymbols", "false");
frameworkSettingsUnix.WithProperty("DebugType", "None");
}
// Use XBuild
Information($"Building {solutionFile}");
XBuild(solutionFile, frameworkSettingsUnix);
}
if (configuration.Equals("Release")) {
if(!DirectoryExists(artifactsDir)) {
CreateDirectory(artifactsDir);
}
foreach(var project in projects) {
if(!project.GetDirectory().ToString().EndsWith(".Tests")
&& !FileExists($"{project.GetDirectory()}/{project.GetFilenameWithoutExtension()}.nuspec"))
{
Information($"Copying {project.GetDirectory()}/bin/{configuration}/* to {artifactsDir}");
CopyDirectory($"{project.GetDirectory()}/bin/{configuration}/", artifactsDir);
}
}
}
Task("Run-Unit-Tests")
.Does(() =>
{
NUnit3("./src/**/bin/" + configuration + "/*.Tests.dll", new NUnit3Settings {
// generate the xml file
NoResults = false,
Results = new NUnit3Result[]{new NUnit3Result(){
FileName = Context.Environment.WorkingDirectory + "/TestResult.xml",
Transform = Context.Environment.WorkingDirectory + "/nunit3-junit.xslt"
}}
});
}); });
Task("Semantic-Release") Task("SemanticRelease")
.Does(() => .Does(() =>{
{ Npx("semantic-release", requiredSemanticVersionPackages);
Npx("semantic-release", requiredSemanticVersionPackages);
}); });
////////////////////////////////////////////////////////////////////// Task("Linter")
// TASK TARGETS .Description("Run DupFinder and InspectCode")
////////////////////////////////////////////////////////////////////// .IsDependentOn("DupFinder")
.IsDependentOn("InspectCode");
Task("LinterAndTest")
.Description("Run Linter and Tests")
.IsDependentOn("Linter")
.IsDependentOn("Test");
Task("Default") Task("Default")
.IsDependentOn("Clean") .IsDependentOn("Clean")
.IsDependentOn("Restore-NuGet-Packages") .IsDependentOn("Restore")
.IsDependentOn("Resharper") .IsDependentOn("DupFinder")
.IsDependentOn("Build") .IsDependentOn("InspectCode")
.IsDependentOn("Run-Unit-Tests"); .IsDependentOn("Build")
.IsDependentOn("Test");
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// EXECUTION // EXECUTION
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
RunTarget(target); RunTarget(target);
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Helpers // Helpers
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
string ExtractNextSemanticVersionNumber(string[] semanticReleaseOutput) {
var extractRegEx = new System.Text.RegularExpressions.Regex("^.+next release version is (?<SemanticVersionNumber>.*)$");
string ExtractNextSemanticVersionNumber(string[] semanticReleaseOutput) return semanticReleaseOutput.Select(line =>extractRegEx.Match(line).Groups["SemanticVersionNumber"].Value).Where(line =>!string.IsNullOrWhiteSpace(line)).SingleOrDefault();
{ }
var extractRegEx = new System.Text.RegularExpressions.Regex("^.+next release version is (?<SemanticVersionNumber>.*)$");
return semanticReleaseOutput
.Select(line => extractRegEx.Match(line).Groups["SemanticVersionNumber"].Value)
.Where(line => !string.IsNullOrWhiteSpace(line))
.SingleOrDefault();
}
\ No newline at end of file
## C# cs-configuration ## Configuration
This project represents a class library for communicating with different key-value stores. This project represents a class library for communicating with different key-value stores.
\ No newline at end of file
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\cs-configuration\Configuration.csproj"> <ProjectReference Include="..\configuration\Configuration.csproj">
<Project>{97fc4a08-a089-4823-9aeb-d05b36be931d}</Project> <Project>{97fc4a08-a089-4823-9aeb-d05b36be931d}</Project>
<Name>Configuration</Name> <Name>Configuration</Name>
</ProjectReference> </ProjectReference>
......
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Cake.
// </auto-generated>
//------------------------------------------------------------------------------
using System.Reflection;
[assembly: AssemblyTitle("Configuration.Tests")]
[assembly: AssemblyDescription("Configuration.Tests is a part of the CoScInE group.")]
[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
[assembly: AssemblyProduct("Configuration.Tests")]
[assembly: AssemblyVersion("1.3.0.0")]
[assembly: AssemblyFileVersion("1.3.0.0")]
[assembly: AssemblyInformationalVersion("1.3.0.0")]
[assembly: AssemblyCopyright("2019 IT Center, RWTH Aachen University")]
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio Version 16
VisualStudioVersion = 15.0.28010.2041 VisualStudioVersion = 16.0.29009.5
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Configuration", "cs-configuration\Configuration.csproj", "{97FC4A08-A089-4823-9AEB-D05B36BE931D}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Configuration", "configuration\Configuration.csproj", "{97FC4A08-A089-4823-9AEB-D05B36BE931D}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Configuration.Tests", "cs-configuration.Tests\Configuration.Tests.csproj", "{DC9FB8C0-CD6B-4C0B-8BA6-5C14668B7DA4}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Configuration.Tests", "configuration.Tests\Configuration.Tests.csproj", "{DC9FB8C0-CD6B-4C0B-8BA6-5C14668B7DA4}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<ProjectGuid>{97FC4A08-A089-4823-9AEB-D05B36BE931D}</ProjectGuid> <ProjectGuid>{97FC4A08-A089-4823-9AEB-D05B36BE931D}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Coscine.Configuratio</RootNamespace> <RootNamespace>Coscine.Configuration</RootNamespace>
<AssemblyName>Coscine.Configuration</AssemblyName> <AssemblyName>Coscine.Configuration</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
......
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>rwth-aachen</authors>
<owners>rwth-aachen</owners>
<license type="expression">MIT</license>
<projectUrl>https://git.rwth-aachen.de/coscine/cs/configuration</projectUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>$description$</description>
<copyright>$copyright$</copyright>
</metadata>
</package>
\ No newline at end of file
...@@ -5,11 +5,12 @@ ...@@ -5,11 +5,12 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
using System.Reflection; using System.Reflection;
[assembly: AssemblyTitle("cs-configuration")] [assembly: AssemblyTitle("Configuration")]
[assembly: AssemblyCompany("RWTH Aachen University IT Center")] [assembly: AssemblyDescription("Configuration is a part of the CoScInE group.")]
[assembly: AssemblyProduct("cs-configuration")] [assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
[assembly: AssemblyVersion("1.2.1.0")] [assembly: AssemblyProduct("Configuration")]
[assembly: AssemblyFileVersion("1.2.1.0")] [assembly: AssemblyVersion("1.3.0.0")]
[assembly: AssemblyInformationalVersion("1.2.1.0")] [assembly: AssemblyFileVersion("1.3.0.0")]
[assembly: AssemblyCopyright("RWTH Aachen University IT Center 2019")] [assembly: AssemblyInformationalVersion("1.3.0.0")]
[assembly: AssemblyCopyright("2019 IT Center, RWTH Aachen University")]