ALF/Build Vocabulary

From Eclipsepedia

< ALF
Jump to: navigation, search

ALF Wiki Home

Contents

Introduction

The Build Vocabulary focuses on the translation of source code into binary format. This translation occurs through the use of compilers and linkers. Build tools call the compilers and linkers and are not compilers or linkers themselves.

Assumptions

The Build Vocabulary will not be responsible for checking out code or determining the correct source code to include in the Build. The ALF Service flow should be setup so that the pre and post steps are handled by ALF. The Build Vocabulary will interact with the other vocabularies such as SCM, Problem Tracking and Requirements gathering to obtain information that should be included in the build results, i.e. the runnable binaries.

Objects

Build

The compile and link process.

Project

Name of the items to be built.

Identifier

Name of Vendor Tool project specific identifier.

Build Workspace

A Build Workspace corresponds to the SCM Workspace.

The Build Workspace would be identified by a Project + Identifier. For example, Project: Hello World + "Version 1".

Build Configuration

A Build Configuration is a pre-defined way a Build will run.

Within a Build Workspace there would be 0-N Build Configurations.

Build Properties

A Build Property is an option to the Build Engine.

A Build Configuration would contain 0-N, Build Properties.

Build Property

Target

Target - item to be built, ie. helloworld.jar

Clean

Clean - remove all Targets and Intermediate Targets in the Build Workspace

All

All - represents all Targets

ForceAFullBuild

Force a full build - indicate to the Build Engine to build regardless of timestamp or versions.

DebugOrRelease

DebugOrRelease - indicate to the Build Engine to perform a build using debug or release compile options

BuildAsVersion

BuildAsVersion - version of the target to create, ie. helloworld-1.4.3.jar where 1.4.3 is the BuildAsVersion.

BuildLabel

BuildLabel - label used to indicate the Build or SCM label, ie. "Nightly Build"

BuildNumber

BuildNumber - number of the build, ie Build 327

BuildResults

BuildLog

  • File or http pointer to step output
  • 0-N occurrences
  • Type: String

ReturnCode

  • Over all SUCESS or FAILURE of the Build
  • Type: Integer (SUCESS = 1, FAILURE = 0)

StepReturnCode

  • Individual Step return codes
  • 0-N occurrences
  • Type: Integer

Reports

  • ReportType
  • File or http pointer to Build Reports
  • 0-N occurrences
  • Type: Dictionary - ReportType (Key, String) BuildReport (Value, URL)

BuiltTargetList

  • List of Targets that where built
  • 0-N occurrences
  • Type: String

FailedTargetList

  • List of Targets that where NOT built
  • 0-N occurrences
  • Type: String

FailedSourceList

  • List of Source File that had errors
  • 0-N occurrences
  • Type: String

API

BuildResults Build(SCM Workspace,  ProjectName, BuildIdentifier, BuildConfiguration)
Example: 
 BuildResults br = Build("Hello Snapshot","Hello World","Version 1","DEBUG");

Notes:

  • SCM Workspace Type allows as to obtain the Client Machine and the SCM Root Dir
  • The ProjectName + BuildIdentifier will allow us to obtain the correct Build WorkSpace and then the BuildConfiguration will allow us to obtain the correct Build options within the Build Workspace.

Schema

Schema

WSDL

WSDL