Using Bamboo Specs from Microsoft .Net

Built for bamboo-specs-6.4.0.

Pre-requisites

To make the best use of this build script you will need the following pre-requisites:

git
psake
maven
ikvm
nuget

Download and install Chocolatey

This example is going to use Chocolatey for installation management, you can get by without it but I recommend it as it makes the whole process of installation much easier.

You can download chocolatey here https://chocolatey.org.

Git

In case you don't already have git installed, use the following chocolatey command to install it.

C:\> choco install git

Psake

The build script uses psake, use the following chocolatey command to install it.

C:\> choco install psake

Maven

The build script uses maven to download the required java dependencies for the Atlassian Bamboo Specs packages, use the following chocolatey command to install it.

C:\> choco install maven

Note: This will also install the latest JDK if it is not already installed on your machine.

IKVM.NET

The build script uses ikvmc to convert java to dotnet, use the following chocolatey command to install it.

C:\> choco install ikvm

Note: This is really the heart of the process as it translates the java byte-code into CIL and compiles it into dotnet compatible DLL's.

dot-net-bamboospecs

Clone the following GitHub repository and change directory:

C:\> git clone https://github.com/peterjbutler/dotnet-bamboo-specs.git

C:\> cd dotnet-bamboo-specs

Build it!

Building the libraries is simple, just execute the psake build script:

C:\dotnet-bamboo-specs>psake

At the end the process should finish with Build Succeeded!, an example output is shown below:

C:\dotnet-bamboo-specs>psake
psake version 4.7.0
Copyright (c) 2010-2017 James Kovacs & Contributors
...

...
Build Succeeded!

----------------------------[ Build Time Report ]----------------------------
Name                           Duration
----                           --------
Header                         00:00:00.041
Clean-Java                     00:00:00.024
Clean-DotNet                   00:00:00.003
Clean-Nuget                    00:00:00.002
Clean                          00:00:00.000
MavenDependencyCopy            00:00:05.257
IkvmcBuild-commons-lang        00:00:01.925
IkvmcBuild-gson                00:00:01.037
IkvmcBuild-httpcore            00:00:01.044
IkvmcBuild-snakeyaml           00:00:01.027
IkvmcBuild-bamboo-specs-api    00:00:01.041
IkvmcBuild-commons-codec       00:00:01.009
IkvmcBuild-commons-logging     00:00:00.960
IkvmcBuild-httpclient          00:00:03.175
IkvmcBuild-commons-collections 00:00:01.152
IkvmcBuild-commons-beanutils   00:00:02.205
IkvmcBuild-commons-digester    00:00:01.000
IkvmcBuild-commons-validator   00:00:04.199
IkvmcBuild-bamboo-specs        00:00:14.588
IkvmcBuild                     00:00:00.000
NugetPack                      00:00:01.428
Total:                         00:00:21.417

NuGet Package

A NuGet package will be output into the nuget directory.

C:\dotnet-bamboo-specs> cd nuget
C:\dotnet-bamboo-specs\nuget> dir
 Volume in drive C is EXAMPLE
 Volume Serial Number is 0000-0000

 Directory of C:\dotnet-bamboo-specs\nuget

08/06/2018  15:17    <DIR>          .
08/06/2018  15:17    <DIR>          ..
08/06/2018  15:17         1,602,727 DotnetBambooSpecs.6.4.0.nupkg
               1 File(s)       1,602,727 bytes
               2 Dir(s)  999,999,999,999 bytes free