Permalink
Fetching contributors…
Cannot retrieve contributors at this time
134 lines (103 sloc) 7.82 KB
<?xml version="1.0"?>
<project name="NAnt Examples" default="rebuild">
<property name="root.folder" value="${directory::get-current-directory()}" />
<property name="build.folder" value="${root.folder}/build" />
<property name="solution.folder" value="${root.folder}/main" />
<property name="tools.folder" value="${root.folder}/tools" />
<property name="schema.folder" value="${solution.folder}/schema" />
<property name="program.files.x86" value="${environment::get-variable('ProgramFiles(x86)')}" if="${environment::variable-exists('ProgramFiles(x86)')}"/>
<property name="program.files.x86" value="${environment::get-variable('ProgramFiles')}" unless="${property::exists('program.files.x86')}" />
<property name="program.files" value="${environment::get-variable('ProgramFiles')}" />
<property name="netfx.tools.folder" value="${program.files.x86}/Microsoft SDKs\Windows\v8.0A\Bin\NETFX 4.0 Tools" />
<property name="netfx.folder" value="${environment::get-variable('SystemRoot')}/Microsoft.NET" />
<property name="netfx.framework.folder" value="${netfx.folder}/Framework" if="${directory::exists(netfx.folder + '/Framework')}" />
<property name="netfx.framework.folder" value="${netfx.folder}/Framework64" if="${directory::exists(netfx.folder + '/Framework64')}" />
<property name="netfx4.folder" value="${netfx.framework.folder}/v4.0.30319" />
<property name="ci.buildNumber" value="${environment::get-variable('APPVEYOR_BUILD_NUMBER')}" if="${environment::variable-exists('APPVEYOR_BUILD_NUMBER')}"/>
<property name="ci.buildNumber" value="0" unless="${property::exists('ci.buildNumber')}" />
<property name="ci.fullBuildNumber" value="${environment::get-variable('APPVEYOR_BUILD_VERSION')}" if="${environment::variable-exists('APPVEYOR_BUILD_VERSION')}"/>
<property name="ci.fullBuildNumber" value="0" unless="${property::exists('ci.fullBuildNumber')}" />
<property name="coverity.folder" value="C:\Projects\cov-analysis-win64-7.7.0.4\cov-analysis-win64-7.7.0.4\bin" if="${directory::exists('C:\Projects\cov-analysis-win64-7.7.0.4\cov-analysis-win64-7.7.0.4\bin')}" />
<property name="coverity.exe" value="${coverity.folder}/cov-build.exe" if="${property::exists('coverity.folder')}" />
<property name="coverity.exe" value="cov-build.exe" unless="${property::exists('coverity.exe')}" />
<property name="coverity.token" value="" />
<property name="coverity.token" value="${environment::get-variable('COVERITY_TOKEN')}" if="${environment::variable-exists('COVERITY_TOKEN')}" />
<property name="coverity.email" value="" />
<property name="coverity.email" value="${environment::get-variable('COVERITY_EMAIL')}" if="${environment::variable-exists('COVERITY_EMAIL')}" />
<property name="buildnumber.major" value="4" />
<property name="buildnumber.minor" value="6" />
<property name="buildnumber.build" value="${ci.buildNumber}" />
<property name="buildnumber.revision" value="0" />
<property name="buildnumber.version" value="${buildnumber.major}.${buildnumber.minor}.${buildnumber.build}.${buildnumber.revision}" />
<loadtasks assembly="${build.folder}/nantcontrib-0.85/bin/NAnt.Contrib.Tasks.dll" />
<include buildfile="${build.folder}/version.build" />
<include buildfile="${build.folder}/opencover.build" />
<include buildfile="${build.folder}/environment.build" />
<include buildfile="${build.folder}/installer.build" />
<include buildfile="${build.folder}/nuget_package.build" />
<include buildfile="${build.folder}/metrics.build" />
<target name="build-environment" depends="get-os-version, create-snk, prepare-environment, get-version-number, generate-release-notes, prepare-sample-project" />
<target name="rebuild" depends="build-environment, clean, build, test" >
<call target="test-cpp" if="${version::get-major(version::parse(machine.version))==6}" />
</target>
<target name="teamcity-build" depends="build-environment, clean" >
<echo>##teamcity[buildNumber '${buildnumber.version}']</echo>
<call target="build-all-platforms" />
</target>
<target name="copy-artefacts" >
<move file="${solution.folder}/OpenCover.Installer/bin/Release/opencover.installer.msi"
tofile="${solution.folder}/bin/installer/opencover.${buildnumber.major}.${buildnumber.minor}.${buildnumber.build}.msi" />
<move file="${solution.folder}/bin/zip/opencover.zip"
tofile="${solution.folder}/bin/zip/opencover.${buildnumber.major}.${buildnumber.minor}.${buildnumber.build}.zip" />
</target>
<target name="create-release" depends="clean-all, build-environment, replace-drdump-token, build-release-platforms, test, test-cpp, create-zip-package">
<call target="chocolatey-package" />
<call target="chocolatey-package-portable" />
<call target="nuget-package" />
<call target="set-rc-property" />
<call target="nuget-package" />
<call target="copy-artefacts" />
<call target="test-bdd" />
</target>
<target name="create-coverity-release" depends="clean-all, build-environment" if="${property::exists('coverity.exe')}">
<exec program="${coverity.exe}" commandline="--dir cov-int --encoding=UTF-8 build.bat build-release-platforms-x64" />
<exec program="${tools.folder}/7-Zip/7za.exe">
<arg value="a" />
<arg value="coverity.zip" />
<arg value="cov-int" />
</exec>
<exec program="${curl.exe}"
commandline='--form token=${coverity.token} --insecure --form email=${coverity.email} --form file=@coverity.zip --form version="${ci.fullBuildNumber}" --form description="${ci.fullBuildNumber}" https://scan.coverity.com/builds?project=OpenCover%2Fopencover' />
</target>
<target name="reset-private-vars" >
<setenv name="SONARQUBE_TOKEN" value="" />
<setenv name="COVERITY_TOKEN" value="" />
<setenv name="COVERALLS_REPO_TOKEN" value="" />
</target>
<target name="sonarqube-build" if="${environment::variable-exists('SONARQUBE_TOKEN')}">
<property name="sonarqube.token" value="${environment::get-variable('SONARQUBE_TOKEN')}" />
<call target="dogfood-release" />
<call target="reset-private-vars" />
<exec program="${tools.folder}/7-Zip/7za.exe" unless="${directory::exists('tools\sonarqube\cxx-runner')}">
<arg value="x" />
<arg value="-otools\sonarqube\cxx-runner" />
<arg value="tools\CxxSonarQubeMsbuidRunner.zip" />
</exec>
<!-- assumes coverage file has been created -->
<exec program="tools\sonarqube\cxx-runner\CxxSonarQubeMsbuidRunner.exe" commandline='/m:main\opencover.sln /d:sonar.token=${sonarqube.token} /d:sonar.host.url=https://nemo.sonarqube.org /d:sonar.cfamily.build-wrapper-output.bypass=true /x:vs15 /q:tools\sonarqube\runner\MSBuild.SonarQube.Runner.exe /n:opencover /k:opencover /p:Configuration=release,Platform=x64,GtestRunnerTaskEnabled=false /v:"${ci.fullBuildNumber}" /d:sonar.cs.opencover.reportsPaths="${root.folder}\main\bin\release\opencovertests.xml"' />
</target>
<target name="quick-build-release" depends="clean, build-environment, build-release-platforms, test, test-cpp" />
<target name="set-rc-property" >
<property name="buildnumber.ci" value="-rc" />
</target>
<target name="replace-drdump-token" if="${environment::variable-exists('DRDUMP_TOKEN')}" >
<property name="drdump.token" value="${environment::get-variable('DRDUMP_TOKEN')}" />
<copy file="main\OpenCover.Console\Program.cs" tofile="main\OpenCover.Console\Program.cx" overwrite="true" >
<filterchain>
<replacestring from="dbbb1d35-be49-45e2-b81d-84f1042c455d" to="${drdump.token}" />
</filterchain>
</copy>
<copy file="main\OpenCover.Console\Program.cx" tofile="main\OpenCover.Console\Program.cs" overwrite="true" />
<delete file="main\OpenCover.Console\Program.cx" />
</target>
</project>