turtletramp's blog

Build Artifact handling

story on what I did to get build artifacts under control (currently in progress ... incomplete :) )

  1. Where to store build artifacts?
    1. Apache Archiva
  2. Build Management
    1. Resolving dependencies
      1. Apache Ivy
    2. Deploying artifacts to Repository Storage (currently Apache Archiva)
      1. Apache Ivy
        1. On Windows Build Machine
  3. further reading

Where to store build artifacts?

I have several builds ongoing on

  • Windows
  • Linux

for

  • .NET / Mono
  • C++
  • Java / Android

The following build systems are used

  • C#
    • Dev / IDE
      • Windows --> Visual Studio
        • MS Build (indirectly because VS is using that one)
      • Ubuntu / Linux --> Mono Develop
        • NAnt (becuase about 7 years ago this was the only option to do build for .NET code on Windows and Linux)
  • Java / Android
    • Gradle (soon)
    • Ant (not for long anymore)
  • Android Build System (for OS builds)

Code Storage:

  • Git
  • Bitbucket (git repos)

Build Server:

  • Master: Jenkins
  • Slaves
    • Windows Virtual Machins in KVM
    • Linux Virtual Machines in KVM
    • Docker containers (moving slowly from virtual machines to containers where possible)

Apache Archiva

Why?

  • Pure Open Source
  • Seems to fit my needs ... we will see

Pros:

Cons:

  • could not find a jenkins plugin to directly deploy artifacts to Archiva --> Will try to use Apache Ivy called via shell / batch scripts for this purpose

Build Management

Resolving dependencies

Apache Ivy

Deploying artifacts to Repository Storage (currently Apache Archiva)

Apache Ivy

On Windows Build Machine

  • Downloaded and extracted Ivy to Program Files folder
  • added Ivy directory to Evironment PATH

further reading

http://olmex.blogspot.in/2012/04/ivy-beginners-guide.html