summaryrefslogtreecommitdiff
path: root/azure/coverage_job.yml
diff options
context:
space:
mode:
authorGerard Roche <gerardroche@users.noreply.github.com>2019-09-25 19:13:17 +0100
committerNikita Popov <nikita.ppv@gmail.com>2019-10-11 17:44:36 +0200
commitdb54b0fa187e874ae8d02104cb3471cdcd89e9d2 (patch)
tree7051f349b7ea4fd5ffac8e8d8f7408e962b942c4 /azure/coverage_job.yml
parentaa10e208303e8a36f543b2c0afbc15f1ca980410 (diff)
downloadphp-git-db54b0fa187e874ae8d02104cb3471cdcd89e9d2.tar.gz
Azure: Publish code coverage results
* Add an Azure Publish Code Coverage Results task * Add `make gcovr-html` to generate a gcovr test coverage report in HTML * Add `make gcovr-xml` to generate a gcovr test coverage report in XML * Remove `test` target dependency from `make lcov-html`; Run the two targets together instead: `make test lcov-html`. Re: https://github.com/php/php-src/pull/4739#issuecomment-534911441 See: https://externals.io/message/107113, https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/publish-code-coverage-results?view=azure-devops, and https://github.com/php/php-src/pull/4759.
Diffstat (limited to 'azure/coverage_job.yml')
-rw-r--r--azure/coverage_job.yml42
1 files changed, 42 insertions, 0 deletions
diff --git a/azure/coverage_job.yml b/azure/coverage_job.yml
new file mode 100644
index 0000000000..217b5d664a
--- /dev/null
+++ b/azure/coverage_job.yml
@@ -0,0 +1,42 @@
+parameters:
+ configurationName: ''
+ configurationParameters: ''
+ runTestsParameters: ''
+ timeoutInMinutes: 60
+
+jobs:
+ - job: ${{ parameters.configurationName }}
+ timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
+ pool:
+ vmImage: 'ubuntu-latest'
+ steps:
+ - template: apt.yml
+ - script: |
+ sudo -H pip install gcovr
+ displayName: 'Install gcovr'
+ - template: configure.yml
+ parameters:
+ configurationParameters: --enable-gcov ${{ parameters.configurationParameters }}
+ - script: make -j$(/usr/bin/nproc) >/dev/null
+ displayName: 'Make Build'
+ - template: install.yml
+ - script: |
+ mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
+ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
+ sudo -u postgres psql -c "CREATE DATABASE test;"
+ displayName: 'Setup'
+ - template: test.yml
+ parameters:
+ configurationName: ${{ parameters.configurationName }}
+ runTestsParameters: ${{ parameters.runTestsParameters }}
+ - script: |
+ make gcovr-xml
+ mv gcovr.xml coverage.xml
+ displayName: 'Generate ${{ parameters.configurationName }} Test Coverage'
+ condition: or(succeeded(), failed())
+ - task: PublishCodeCoverageResults@1
+ inputs:
+ codeCoverageTool: 'Cobertura'
+ summaryFileLocation: coverage.xml
+ displayName: 'Publish ${{ parameters.configurationName }} Test Coverage'
+ condition: or(succeeded(), failed())