Continuous Integration Build Server

The following section is both for internal reference for the build server used by the Niftools team. We encourage developers to build their own; it provides a fast feedback loop, encourages you to run test and fix them when they get broken. We use jenkins as our build server

Installed Plug-ins

  • EnvInject Plugin : Used to inject env variables generated by Buildenv
  • Git Client & Git Plugins : Used to grab repo
  • Hudson Build-publisher Plugin : Pre-installed
  • Jenkins Cobertura Plugin : Used to publish coverage reports
Optional Plug-ins
  • IRC Plugin : IRC bot which allows you trigger builds remotely

Project Name

blender_nif_plugin

Git Repository

git://github.com/niftools/blender_nif_plugin.git

Branches

develop

Build Triggers

Poll SCM
Build Periodically

Inject Environment variables

..<path_to_jenkins>/.jenkins/workspace/bin/blender.properties

Build Steps

Build

> cd install
> DEL *.zip
> makezip.bat

Unit Test

> cd testframework
> blender-nosetests.bat
--with-xunit
--xunit-file=reports\unit.xml
--cover-xml
--cover-package=io_scene_nif unit

Integration Test

> cd testframework
> testframework\blender-nosetests.bat
--with-xunit
--xunit-file=testframework\reports\integration_test.xml
--cover-package=io_scene_nif
--cover-xml-file=testframework\reports\integration_test_coverage.xml
testframework\integration

Nightly

> cd install
> ren *.zip blender_nif_plugin_%BUILD_NUMBER%_%BUILD_ID%.zip
> xcopy /K /F  "*.zip" "%build_folder%\blender_nif_plugin\nightly\"

Post Build Actions

Publish Cobertura Coverage reports

testframework/reports/*.xml

Publish XUnit test reports

testframework/reports/*.xml