From db54b0fa187e874ae8d02104cb3471cdcd89e9d2 Mon Sep 17 00:00:00 2001 From: Gerard Roche Date: Wed, 25 Sep 2019 19:13:17 +0100 Subject: 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. --- azure/coverage_job.yml | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 azure/coverage_job.yml (limited to 'azure/coverage_job.yml') 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()) -- cgit v1.2.1