diff options
author | Gerard Roche <gerardroche@users.noreply.github.com> | 2019-09-25 19:13:17 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-10-11 17:44:36 +0200 |
commit | db54b0fa187e874ae8d02104cb3471cdcd89e9d2 (patch) | |
tree | 7051f349b7ea4fd5ffac8e8d8f7408e962b942c4 /azure/coverage_job.yml | |
parent | aa10e208303e8a36f543b2c0afbc15f1ca980410 (diff) | |
download | php-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.yml | 42 |
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()) |