@@ -31,20 +31,28 @@ stages:
3131 strategy :
3232 matrix :
3333 Linux :
34+ displayName : ' Linux'
3435 imageName : ' ubuntu-16.04'
3536 MacOS :
37+ displayName : ' MacOS'
3638 imageName : ' macos-10.13'
3739 Windows :
40+ displayName : ' Windows'
3841 imageName : ' vs2017-win2016'
39- publishModule : ' true'
42+ publish : ' true'
4043 analysis : ' true'
4144 coverage : ' true'
4245 pool :
4346 vmImage : $(imageName)
47+ displayName : ' PowerShell'
4448 steps :
4549
46- # Install pipeline dependencies and build module
47- - powershell : ./scripts/pipeline-build.ps1 -File ./pipeline.build.ps1 -Configuration $(buildConfiguration) -ModuleVersion $(Build.BuildNumber) -ReleaseVersion "$(Release.Version)"
50+ # Install pipeline dependencies
51+ - powershell : ./.azure-pipelines/pipeline-deps.ps1
52+ displayName : ' Install dependencies'
53+
54+ # Build module
55+ - powershell : Invoke-Build -Configuration $(buildConfiguration) -Build $(Build.BuildNumber)
4856 displayName : ' Build module'
4957
5058 # Pester test results
@@ -73,12 +81,24 @@ stages:
7381 # publishRunAttachments: true
7482 # condition: succeededOrFailed()
7583
76- # Publish Code Coverage Results
84+ # Generate Code Coverage report
85+ - task : Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@4
86+ displayName : ' Code coverage report generator'
87+ inputs :
88+ reports : ' reports\pester-coverage.xml'
89+ targetdir : ' reports\coverage'
90+ sourcedirs : ' src\PSRule.Rules.Kubernetes'
91+ reporttypes : ' HtmlInline_AzurePipelines;Cobertura;Badges'
92+ tag : $(Build.BuildNumber)
93+ condition : eq(variables['coverage'], 'true')
94+
95+ # Publish Code Coverage report
7796 - task : PublishCodeCoverageResults@1
7897 displayName : ' Publish Pester code coverage'
7998 inputs :
80- codeCoverageTool : ' JaCoCo'
81- summaryFileLocation : ' reports/pester-coverage.xml'
99+ codeCoverageTool : ' Cobertura'
100+ summaryFileLocation : ' reports/coverage/Cobertura.xml'
101+ reportDirectory : ' reports/coverage'
82102 condition : eq(variables['coverage'], 'true')
83103
84104 # Generate artifacts
@@ -87,24 +107,47 @@ stages:
87107 inputs :
88108 artifactName : PSRule.Rules.Kubernetes
89109 targetPath : out/modules/PSRule.Rules.Kubernetes
90- condition : and(succeeded(), eq(variables['publishModule '], 'true'))
110+ condition : and(succeeded(), eq(variables['publish '], 'true'))
91111
92112# Release pipeline
93113- stage : Release
94114 displayName : Release
95115 dependsOn : Build
96- condition : startsWith(variables['Build.SourceBranch'], 'refs/tags/v0.')
116+ condition : and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/v0.') )
97117 jobs :
98118 - job :
99119 displayName : Live
100120 pool :
101121 vmImage : ' ubuntu-16.04'
122+ variables :
123+ isPreRelease : $[contains(variables['Build.SourceBranchName'], '-B')]
102124 steps :
125+
126+ # Download module from build
103127 - task : DownloadPipelineArtifact@1
104128 displayName : ' Download module'
105129 inputs :
106130 artifactName : PSRule.Rules.Kubernetes
107131 downloadPath : $(Build.SourcesDirectory)/out/modules/PSRule.Rules.Kubernetes
108- # Install pipeline dependencies and build module
109- - powershell : ./scripts/pipeline-build.ps1 -File ./pipeline.build.ps1 -Task Release -NuGetApiKey $(apiKey)
132+
133+ # Install pipeline dependencies
134+ - powershell : ./.azure-pipelines/pipeline-deps.ps1
135+ displayName : ' Install dependencies'
136+
137+ # Install pipeline dependencies and build module
138+ - powershell : Invoke-Build Release -ApiKey $(apiKey)
110139 displayName : ' Publish module'
140+
141+ # Update GitHub release
142+ - task : GitHubRelease@0
143+ displayName : ' GitHub release'
144+ inputs :
145+ gitHubConnection : ' AzureDevOps-PSRule.Rules.Kubernetes'
146+ repositoryName : ' $(Build.Repository.Name)'
147+ action : edit
148+ tag : ' $(Build.SourceBranchName)'
149+ releaseNotesSource : input
150+ releaseNotes : ' See [change log](https://github.com/BernieWhite/PSRule.Rules.Kubernetes/blob/master/CHANGELOG.md)'
151+ assetUploadMode : replace
152+ addChangeLog : false
153+ isPreRelease : $(isPreRelease)
0 commit comments