💚 Adds basic CI configuration
This commit is contained in:
		
							
								
								
									
										157
									
								
								azure-pipelines.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										157
									
								
								azure-pipelines.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,157 @@
 | 
			
		||||
resources:
 | 
			
		||||
  repositories:
 | 
			
		||||
    - repository: self
 | 
			
		||||
      checkoutOptions:
 | 
			
		||||
        submodules: true
 | 
			
		||||
        lfs: true
 | 
			
		||||
trigger:
 | 
			
		||||
  branches:
 | 
			
		||||
    include:
 | 
			
		||||
      - master
 | 
			
		||||
      - develop
 | 
			
		||||
      - feature/*
 | 
			
		||||
      - bugfix/*
 | 
			
		||||
  paths:
 | 
			
		||||
    include:
 | 
			
		||||
      - src/*
 | 
			
		||||
      - tests/*
 | 
			
		||||
variables:
 | 
			
		||||
  - group: Environment
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
- job: Setup
 | 
			
		||||
  pool:
 | 
			
		||||
    vmImage: windows-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
 | 
			
		||||
  pool:
 | 
			
		||||
    vmImage: ubuntu-latest
 | 
			
		||||
  dependsOn:
 | 
			
		||||
    - Setup
 | 
			
		||||
  variables:
 | 
			
		||||
    Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ]
 | 
			
		||||
  steps:
 | 
			
		||||
  - checkout: self
 | 
			
		||||
    fetchDepth: 1
 | 
			
		||||
 | 
			
		||||
  - task: DotNetCoreCLI@2
 | 
			
		||||
    displayName: Restoring nugets
 | 
			
		||||
    inputs:
 | 
			
		||||
      command: 'restore'
 | 
			
		||||
      arguments: -Project2ProjectTimeOut 20
 | 
			
		||||
      verbosityRestore: Normal
 | 
			
		||||
 | 
			
		||||
  - task: DotNetCoreCLI@2
 | 
			
		||||
    displayName: Building Projects
 | 
			
		||||
    inputs:
 | 
			
		||||
      command: build
 | 
			
		||||
      projects: src/*/*.csproj
 | 
			
		||||
      configuration: $(BuildConfiguration)
 | 
			
		||||
      arguments: -o $(build.artifactStagingDirectory)/build
 | 
			
		||||
      versioningScheme: byEnvVar
 | 
			
		||||
      versionEnvVar: Version
 | 
			
		||||
 | 
			
		||||
  - task: PublishBuildArtifacts@1
 | 
			
		||||
    displayName: Publish build artifacts
 | 
			
		||||
    inputs:
 | 
			
		||||
      PathtoPublish: $(build.artifactStagingDirectory)/build
 | 
			
		||||
      ArtifactName: 'drop'
 | 
			
		||||
 | 
			
		||||
  - task: DotNetCoreCLI@2
 | 
			
		||||
    displayName: Packing as Nugets
 | 
			
		||||
    inputs:
 | 
			
		||||
      command: pack
 | 
			
		||||
      searchPatternPack: 'src/*/*.csproj'
 | 
			
		||||
      configuration: $(BuildConfiguration)
 | 
			
		||||
      versioningScheme: byEnvVar
 | 
			
		||||
      versionEnvVar: Version
 | 
			
		||||
      verbosityPack: normal
 | 
			
		||||
      packDirectory: $(build.artifactStagingDirectory)/nuget
 | 
			
		||||
 | 
			
		||||
  - task: PublishBuildArtifacts@1
 | 
			
		||||
    name: publishNuget
 | 
			
		||||
    displayName: Publish nugets
 | 
			
		||||
    inputs:
 | 
			
		||||
      PathtoPublish: $(build.artifactStagingDirectory)/nuget
 | 
			
		||||
      ArtifactName: 'nuget'
 | 
			
		||||
 | 
			
		||||
- job: Testing
 | 
			
		||||
  pool:
 | 
			
		||||
    vmImage: ubuntu-latest
 | 
			
		||||
  dependsOn:
 | 
			
		||||
    - Setup
 | 
			
		||||
  variables:
 | 
			
		||||
    Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ]
 | 
			
		||||
  steps:
 | 
			
		||||
  - checkout: self
 | 
			
		||||
    fetchDepth: 1
 | 
			
		||||
 | 
			
		||||
  - task: DotNetCoreCLI@2
 | 
			
		||||
    name: dotnetRestore
 | 
			
		||||
    displayName: Restoring nugets
 | 
			
		||||
    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'
 | 
			
		||||
      configuration: 'Debug'
 | 
			
		||||
      testRunTitle: 'Running tests'
 | 
			
		||||
 | 
			
		||||
- job: Publishing
 | 
			
		||||
  pool:
 | 
			
		||||
    vmImage: ubuntu-latest
 | 
			
		||||
  dependsOn:
 | 
			
		||||
    - Setup
 | 
			
		||||
    - Building
 | 
			
		||||
    - Testing
 | 
			
		||||
  variables:
 | 
			
		||||
    Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ]
 | 
			
		||||
  steps:
 | 
			
		||||
  - checkout: none
 | 
			
		||||
 | 
			
		||||
  - task: DownloadPipelineArtifact@2
 | 
			
		||||
    displayName: Downloading artifact
 | 
			
		||||
    inputs:
 | 
			
		||||
      artifactName: 'nuget'
 | 
			
		||||
      targetPath: $(build.artifactStagingDirectory)/nuget
 | 
			
		||||
 | 
			
		||||
  - task: DotNetCoreCLI@2
 | 
			
		||||
    displayName: Pushing to nuget server
 | 
			
		||||
    inputs:
 | 
			
		||||
      workingDirectory: $(build.artifactStagingDirectory)/nuget
 | 
			
		||||
      command: 'custom'
 | 
			
		||||
      custom: nuget
 | 
			
		||||
      arguments: >
 | 
			
		||||
        push *.nupkg
 | 
			
		||||
        -s $(KritikosNuget)
 | 
			
		||||
        -k $(KritikosApiKey)
 | 
			
		||||
		Reference in New Issue
	
	Block a user