story on what I did to get build artifacts under control (currently in progress ... incomplete :) )
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)
- Windows --> Visual Studio
- Dev / IDE
- 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