Merge pull request #2 from kritikos-io/develop

Develop
This commit is contained in:
2021-06-19 16:54:59 +03:00
committed by GitHub
17 changed files with 114 additions and 91 deletions

Submodule .config updated: 9b9cc35843...0da22b3059

2
.gitignore vendored
View File

@ -1 +1 @@
.config/.gitignore
.config/.gitignore-dotnet

View File

@ -1 +0,0 @@
.config/.vscode

1
.vscode/tasks.json vendored Symbolic link
View File

@ -0,0 +1 @@
../.config/.vscode/tasks-dotnet.json

View File

@ -1 +1 @@
.config/Dotnet.code-workspace
.config/Sample.code-workspace

View File

@ -1 +1 @@
.config/Resharper.sln.DotSettings
.config/Sample.sln.DotSettings

View File

@ -2,6 +2,8 @@
A simple template leveraging [.Config][1] dotfiles submodule for rapid project deployment. Simply rename Solution.{code-workspace,sln,sln.DotSettings} to your project name and get started! Afterwards, replace this readme with the actual documentation of your project.
Additionally, change the Project & Repository urls on [src/Directory.Build.props](src/Directory.Build.props).
Additionally, until GitHub properly supports submodule definitions from template repositories, after cloning you should run
```git submodule add https://github.com/kritikos-io/.config``` from the repository root. You can replace the submodule with a compatible fork (to preserve your own default namespace etc) **provided it keeps file naming intact** since most files are appearing as symlinks.

View File

@ -5,152 +5,157 @@ resources:
submodules: true
lfs: true
trigger:
batch: true
branches:
include:
- master
- develop
- feature/*
- bugfix/*
- release/*
paths:
include:
- azure-pipelines.yml
- src/*
- tests/*
variables:
- group: Environment
- group: ApiKeys
- name: SONAR_PROJECT
value: REPLACE_ME
jobs:
- job: Setup
- job: Version
pool:
vmImage: windows-latest
vmImage: ubuntu-latest
steps:
- powershell: |
dotnet tool install --tool-path .. gitversion.tool
displayName: Installing Dotnet Tools
- powershell: |
$git = $(../dotnet-gitversion /output json /showvariable NugetVersion)
echo "##vso[task.setvariable variable=gitVersion;isOutput=true]$(../dotnet-gitversion /output json /showvariable NugetVersion)"
name: versioning
displayName: Setting version from git
- powershell: |
echo "Current version: $(versioning.gitVersion)"
displayName: Shows currently compiling version
- job: Building
- pwsh: dotnet tool install --tool-path .. gitversion.tool
displayName: Install GitVersion
- pwsh: |
echo "##vso[task.setvariable variable=gitVersion;isOutput=true]$(../dotnet-gitversion /output json /showvariable SemVer)"
"Current version: $(../dotnet-gitversion /output json /showvariable SemVer)"
displayName: Sets SemVer
name: versioning
- job: Build
pool:
vmImage: ubuntu-latest
dependsOn:
- Setup
- Version
variables:
Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ]
Version: $[ dependencies.Version.outputs['versioning.gitVersion'] ]
steps:
- checkout: self
fetchDepth: 1
- task: DotNetCoreCLI@2
displayName: Restoring nugets
displayName: Build Solution
inputs:
command: 'restore'
arguments: -Project2ProjectTimeOut 20
verbosityRestore: Normal
- task: DotNetCoreCLI@2
displayName: Building Projects
inputs:
command: build
projects: src/*/*.csproj
command: 'build'
configuration: $(BuildConfiguration)
arguments: -o $(build.artifactStagingDirectory)/build
arguments: '-o $(build.artifactStagingDirectory)/build'
versioningScheme: byEnvVar
versionEnvVar: Version
verbosityRestore: Minimal
- task: PublishBuildArtifacts@1
displayName: Publish build artifacts
displayName: Publish Build
inputs:
PathtoPublish: $(build.artifactStagingDirectory)/build
ArtifactName: 'drop'
publishLocation: 'Container'
- task: DotNetCoreCLI@2
displayName: Packing as Nugets
displayName: Pack Nugets
inputs:
command: pack
searchPatternPack: 'src/*/*.csproj'
command: 'pack'
packagesToPack: 'src/*/*.csproj'
packDirectory: '$(build.artifactStagingDirectory)/nuget'
configuration: $(BuildConfiguration)
versioningScheme: byEnvVar
versionEnvVar: Version
verbosityPack: normal
packDirectory: $(build.artifactStagingDirectory)/nuget
verbosityRestore: Minimal
verbosityPack: Minimal
- task: PublishBuildArtifacts@1
name: publishNuget
displayName: Publish nugets
displayName: Publish Nugets
inputs:
PathtoPublish: $(build.artifactStagingDirectory)/nuget
PathtoPublish: '$(build.artifactStagingDirectory)/nuget'
ArtifactName: 'nuget'
- job: Testing
publishLocation: 'Container'
- job: Test
pool:
vmImage: ubuntu-latest
dependsOn:
- Setup
- Version
variables:
Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ]
Version: $[ dependencies.Version.outputs['versioning.gitVersion'] ]
GITHUB_KEY: $(GitHubApiKey)
SONAR_ORG: $(SonarCloudOrganization)
SONAR_KEY: $(SonarCloudApiKey)
SONAR_URL: $(SonarCloudHost)
CODECOV_KEY: $(CodeCovApiKey)
COVERALLS_KEY: $(CoverallsApiKey)
steps:
- checkout: self
fetchDepth: 1
- pwsh: |
dotnet tool install --tool-path .. dotnet-sonarscanner
dotnet tool install --tool-path .. coveralls.net
dotnet tool install --tool-path .. Codecov.Tool
displayName: Install Tools
- pwsh: |
../dotnet-sonarscanner begin /k:"$(SONAR_PROJECT)" /v:"$(Version)" /o:"$(SONAR_ORG)" /d:sonar.host.url="$(SONAR_URL)" /d:sonar.login="$(SONAR_KEY)" /d:sonar.cs.opencover.reportsPaths="$(build.artifactStagingDirectory)/coverage/coverage.opencover.xml" /d:sonar.branch.name="$(Build.SourceBranchName)" /d:sonar.github.repository="$(Build.Repository.Name)" /d:sonar.github.oauth=$(GITHUB_KEY)
condition: ne(variables['Build.Reason'], 'PullRequest')
displayName: SonarCloud (commit)
- pwsh: |
../dotnet-sonarscanner begin /k:"$(SONAR_PROJECT)" /v:"$(Version)" /o:"$(SONAR_ORG)" /d:sonar.host.url="$(SONAR_URL)" /d:sonar.login="$(SONAR_KEY)" /d:sonar.cs.opencover.reportsPaths="$(build.artifactStagingDirectory)/coverage/coverage.opencover.xml" /d:sonar.github.repository="$(Build.Repository.Name)" /d:sonar.github.oauth=$(GITHUB_KEY) /d:sonar.pullrequest.key="$(System.PullRequest.PullRequestNumber)" /d:sonar.pullrequest.branch="$(Build.SourceBranchName)" /d:sonar.pullrequest.provider="github"
condition: eq(variables['Build.Reason'], 'PullRequest')
displayName: SonarCloud (PR)
- task: DotNetCoreCLI@2
name: dotnetRestore
displayName: Restoring nugets
displayName: Test Solution
inputs:
command: 'restore'
arguments: -Project2ProjectTimeOut 20 --packages "$(Build.BinariesDirectory)/.nuget)
verbosityRestore: Normal
- task: DotNetCoreCLI@2
name: dotnetBuild
displayName: Building Projects
inputs:
command: build
projects: src/*/*.*proj
configuration: $(BuildConfiguration)
versioningScheme: byEnvVar
versionEnvVar: Version
- task: DotNetCoreCLI@2
name: dotnetTest
displayName: Testing implementations
inputs:
command: test
projects: 'tests/*/*.*proj'
command: 'test'
configuration: 'Debug'
testRunTitle: 'Running tests'
- job: Publishing
arguments: '--logger trx /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=$(build.artifactStagingDirectory)/coverage/ /p:MergeWith=$(build.artifactStagingDirectory)/coverage/coverage.json'
publishTestResults: true
verbosityPack: Minimal
verbosityRestore: Minimal
testRunTitle: 'Unit Tests'
- pwsh: |
../dotnet-sonarscanner end /d:sonar.login="$(SONAR_KEY)"
displayName: Publish SonarCloud
- task: PublishBuildArtifacts@1
displayName: Publish Test Coverage
inputs:
PathtoPublish: $(build.artifactStagingDirectory)/coverage
ArtifactName: 'coverage'
publishLocation: 'Container'
- pwsh: |
../csmacnz.Coveralls --repoToken "$(COVERALLS_KEY)" --opencover -i $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --useRelativePaths --commitId "$(Build.SourceVersion)" --commitBranch "$(Build.SourceBranchName)" --commitAuthor "$(Build.RequestedFor)" --commitEmail "$(Build.RequestedForEmail)" --commitMessage "$(Build.SourceVersionMessage)" --jobId "$(Build.BuildId)"
../codecov --token "$(CodeCovApiKey)" --file $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --branch "$(Build.SourceBranchName)" --sha "$(Build.SourceVersion)"
condition: ne(variables['Build.Reason'], 'PullRequest')
displayName: Push Coverage (commit)
- pwsh: |
../csmacnz.Coveralls --repoToken "$(COVERALLS_KEY)" --opencover -i $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --useRelativePaths --commitId "$(Build.SourceVersion)" --commitBranch "$(Build.SourceBranchName)" --commitAuthor "$(Build.RequestedFor)" --commitEmail "$(Build.RequestedForEmail)" --commitMessage "$(Build.SourceVersionMessage)" --jobId "$(Build.BuildId)" --pullRequest "$(System.PullRequest.PullRequestNumber)"
../codecov --token "$(CodeCovApiKey)" --file $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --branch "$(Build.SourceBranchName)" --sha "$(Build.SourceVersion)" --pr "$(System.PullRequest.PullRequestNumber)"
condition: eq(variables['Build.Reason'], 'PullRequest')
displayName: Push Coverage (PR)
- job: Publish
pool:
vmImage: ubuntu-latest
dependsOn:
- Setup
- Building
- Testing
variables:
Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ]
- Version
- Build
- Test
steps:
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Downloading artifact
displayName: Fetch nugets
inputs:
buildType: 'current'
artifactName: 'nuget'
targetPath: $(build.artifactStagingDirectory)/nuget
- task: DotNetCoreCLI@2
displayName: Pushing to nuget server
condition: ne(variables['Build.Reason'], 'PullRequest')
displayName: Push Nugets
inputs:
workingDirectory: $(build.artifactStagingDirectory)/nuget
command: 'custom'
custom: nuget
custom: 'nuget'
arguments: >
push *.nupkg
-s $(KritikosNuget)

1
dotnet.ruleset Symbolic link
View File

@ -0,0 +1 @@
.config/dotnet.ruleset

View File

@ -1 +0,0 @@
.config/gulpfile.js

1
packages/.gitkeep Symbolic link
View File

@ -0,0 +1 @@
../.config/.gitkeep

View File

@ -0,0 +1 @@
../.config/Extras.Directory.Build.props

10
src/Directory.build.props Normal file
View File

@ -0,0 +1,10 @@
<Project>
<ImportGroup Condition="Exists($([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))) == 'true'">
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
</ImportGroup>
<PropertyGroup Label="Package">
<PackageProjectUrl>http://localhost</PackageProjectUrl>
<RepositoryUrl>http://localhost</RepositoryUrl>
</PropertyGroup>
</Project>

1
stylecop.json Symbolic link
View File

@ -0,0 +1 @@
.config/stylecop.json

1
tests/Directory.Build.props Symbolic link
View File

@ -0,0 +1 @@
../.config/Tests.Directory.Build.props

1
upload/.gitkeep Symbolic link
View File

@ -0,0 +1 @@
../.config/.gitkeep

1
xunit.runner.json Symbolic link
View File

@ -0,0 +1 @@
.config/xunit.runner.json