Continuous Integration Build Server

Last Built: Sep 25, 2021

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:

  • 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

Jenkins Job Configuration

Jenkins Job Configuration

Project Name | blender_niftools_addon

Git Repository

git://github.com/niftools/blender_niftools_addon.git

Branches

develop

Build Triggers

  • Poll SCM

  • Build Periodically

Inject Env. Variables

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

Build Steps

Build:

Windows:

cd install
DEL *.zip
makezip.bat

Unit Test:

Windows:

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

Integration Tests:

Windows:

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

Nightly:

Windows:

cd install
ren *.zip blender_niftools_addon_%BUILD_NUMBER%_%BUILD_ID%.zip
xcopy /K /F "*.zip" "%build_folder%\blender_niftools_addon\nightly\"

Post Build Actions

Publish Cobertura Coverage reports:

testframework/reports/*.xml

Publish XUnit test reports:

testframework/reports/*.xml