CI/Build.ps1

# Line break for readability in AppVeyor console
Write-Host -Object ''

$moduleName = Get-ProjectName
Write-Host "Building $moduleName"
#param ($Task = 'Default')
# gw890hr99awkk5lmq93orx0m
# Grab nuget bits, install modules, set build variables, start build.
# Import-Module Psake, PSDeploy, BuildHelpers, PSFramework

#Invoke-psake -buildFile $ENV:BHProjectPath\psake.ps1 -taskList $Task -nologo
#exit ( [int]( -not $psake.build_success ) )

$ErrorActionPreference = 'STOP'

# set environemt
Write-PSFMessage -Level Host "Workspace env variables are:"
if (Get-Item ENV:BH*) {
  Get-Item ENV:BH* | Remove-Item -Force
  Set-BuildEnvironment
  Get-Item ENV:BH*
}
else {
  Set-BuildEnvironment
  Get-Item ENV:BH*
}

Write-PSFMessage -Level Host "Workspace is $ENV:BHModulePath"
Write-PSFMessage -Level Host "Testing for manifest"

# check for manifest file
if (!(Test-Path $ENV:BHPSModuleManifest)) {
  Write-PSFMessage -Level Host "No valid manifest to update, exiting"
  [Environment]::Exit()
}

# update functions to export
Write-PSFMessage -Level Host "Updating functions to export"
$list = (Get-ChildItem -Path "$ENV:BHModulePath\functions\*.ps1" | `
      ForEach-Object -Process { [System.IO.Path]::GetFileNameWithoutExtension($_) })
$list | ForEach-Object { "'$_'" } | Out-Null
$list -join "','" | Out-Null
Update-ModuleManifest -Path "$ENV:BHPSModuleManifest" -FunctionsToExport $list | Out-Null

# Get the latest version for a project
$Version = "0.0.$env:APPVEYOR_BUILD_NUMBER"
Write-PSFMessage -Level Host -Message "Setting build version to $Version"
Update-Metadata -Path $env:BHPSModuleManifest -PropertyName ModuleVersion -Value $Version

# Test manifest validity
Write-PSFMessage -Level Host "Testing manifest"
Test-ModuleManifest -Path "$ENV:BHPSModuleManifest" -ErrorAction Stop #| Out-Null
Write-PSFMessage -Level Host "Manifest test passed"

# write new version number to console
$Latest = Get-Metadata -Path (Get-PSModuleManifest)
Write-PSFMessage -Level Host -Message "Module number is $Latest"