The primary driver file for CDAF is the CDAF.solution
file. The directory containing this file is the SOLUTIONROOT. The mandatory properties are solutionName and artifactPrefix.
solutionName=MyAspApp
artifactPrefix=0.1
The CDAF Execution Engine is used to reduce the cognitive load, allowing the engineer to focus on the primary objective, and not have to cater for logging, exception and error handling. The build.tsk
file is placed in the project sub-directory.
The EXITIF
operation allows the skipping of the build prcess if the built-in variable $ACTION
has been set to clean
. The MSTOOL
operation loads the path to MSBuild.exe into environment variable $env:MS_BUILD
. The REPLAC
operation detokenises static content file to inject the product version, which includes the built in $BUILDNUMBER
. Then the compile of the code and generation of Web Deploy (/T:Package
) artefacts is performed:
REMOVE bin
REMOVE obj
Write-Host "If Action is clean only, then exit`n"
EXITIF $ACTION -eq "clean"
Write-Host "Combine to create symantic (http://semver.org/) version`n"
ASSIGN $productVersion+='.'
ASSIGN $productVersion+=$BUILDNUMBER
MSTOOL
Write-Host "PROJECT : $($PROJECT)"
Write-Host "`$productVersion : $productVersion`n"
Write-Host "[$PROJECT] Apply product version as static content`n"
REPLAC Views\Shared\_Layout.cshtml %productVersion% $productVersion
Write-Host "[$PROJECT] Build Project ($PROJECT) with specific parameters for web deploy.`n"
& "$env:MS_BUILD" $PROJECT.csproj /T:Package /P:Configuration=Release /p:buildNumber=$productVersion
The resulting build is a directory files, which need to be included in your storeFor
definition for packaging
Define the artefacts that are needed to perform repeatable deployments.
SelfService\obj\Release\Package\SelfService.deploy.cmd -Flat
SelfService\obj\Release\Package\SelfService.deploy-readme.txt -Flat
SelfService\obj\Release\Package\SelfService.SetParameters.xml -Flat
SelfService\obj\Release\Package\SelfService.SourceManifest.xml -Flat
SelfService\obj\Release\Package\SelfService.zip -Flat
Database\scripts -Recurse
The CDAF CI process will build the application, with tokenised settings and package this into a self-extracting release.ps1 file. This release package can be executed for all target environments.