Skip to content
This repository has been archived by the owner on Jul 17, 2023. It is now read-only.

Continuous Integration AppVeyor

Brian Gatt edited this page Nov 2, 2017 · 9 revisions

Continuous Integration with AppVeyor

The Boost Unit Test Adapter project is currently being built using AppVeyor's continuous integration services. The main repository includes appveyor.yml which should allow for easier setup of an AppVeyor project.

AppVeyor Build Procedure

The AppVeyor build procedure is defined in appveyor.yml, available within the main repository. The YAML file should define all the necessary configuration parameters for setting up the build machine, build the project, run the tests and produce the VSIX installer.

As described in the Building article, the Boost Unit Test Adapter project requires Visual Studio 2015 for proper VSIX generation. AppVeyor's build machine Windows Server 2012 RC image contains the necessary development environment and should be able to build the project straight out of the proverbial box.

Prior to building the project (i.e. before_build), the revision component of the version defined VSIX manifest file is updated and all NuGet packages are downloaded. VSIX version update are done using madskristensen ExtensionScripts.

The rest of the build procedure is fairly standard - each project defined in the BoostTestAdapter solution is built and if the build is successful, tests defined within the BoostTestAdapterNunit.dll and VisualStudioAdapterNunit.dll modules are executed using NUnit. If all tests succeed, the VSIX installer generated by the BoostTestPlugin project is recorded as an artifact.

In case the build fails, the build machine environment (i.e. environment variables and installed programs) are logged and pushed as an artifact for later inspection.

Setting up the AppVeyor Project

  • Log in to AppVeyor using your GitHub credentials.
  • Create a new project and point it to the Boost Unit Test Adapter main repository or your fork of choice.
  • (Optional) From the General tab of the project settings, check 'Pull Requests do not increment build number'.
  • (Optional) From the General tab of the project settings, check 'Skip branches without appveyor.yml'.
  • Start a new build.

'Debugging' an AppVeyor Build

During AppVeyor setup, build environment differences were encountered which required further inspection of the build machine and the build environment. In such cases, modify appveyor.yml to suit your needs. Recommended approaches are:

  • Increase build verbosity from minimal to normal or higher.
  • Add additional output logs (e.g. environment variables) in either the install, before_build, on_finish, on_success or on_failure sections.
  • Dump RDP connection details as recommended in AppVeyor's RDP to build worker article and inspect the build machine.

For further information, refer to AppVeyor's Documentation.

Downloading a Development Build

In order to download an in-development build, simply:

  1. Navigate to the project's AppVeyor page.
  2. Select a build from the History tab. Alternatively, make use of the Latest Build tab which is selected by default.
  3. Select a build job. Currently Release and Debug are available, each of which represents a release and debug compilation respectively.
  4. From the Artifacts tab, download the produced VSIX.

Please use in-development builds with caution. We recommend that on public release, an in-development build is uninstalled and the official release is downloaded and installed from the Visual Studio gallery.