Continuous Integration Build Server

Last Built: Dec 05, 2019

Previous topic Next topic
TestFramework API Documentation Documentation

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 a 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 the 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