tasks/build.process.ps1

# Top-level build process control flags
$SkipVersion = $false
$SkipBuild = $false
$SkipTest = $false
$SkipTestReport = $false
$SkipPackage = $false
$SkipPublish = $false

# Define overall build process
task PreVersion
task VersionCore GitVersion
task PostVersion
task Version -If {!$SkipVersion} PreVersion,VersionCore,PostVersion

task PreBuild
task BuildCore BuildSolution,BuildBicepFiles
task PostBuild
task Build -If {!$SkipBuild} PreBuild,BuildCore,PostBuild

task PreTest
task TestCore RunTests,RunPesterTests,ValidateBicepModules
task PostTest
task Test -If {!$SkipTest} PreTest,TestCore,PostTest

task PreTestReport
task TestReportCore GenerateTestReport
task PostTestReport
task TestReport -If {!$SkipTest -and !$SkipTestReport} PreTestReport,TestReportCore,PostTestReport

task PrePackage
task PackageCore BuildSolutionPackages,BuildContainerImages
task PostPackage
task Package -If {!$SkipPackage} PrePackage,PackageCore,PostPackage

task PrePublish
task PublishCore PublishBicepModules
task PostPublish
task Publish -If {!$SkipPublish} PrePublish,PublishCore,PostPublish

task RunFirst
task RunLast


task FullBuild RunFirst,
                Version,
                Build,
                Test,
                TestReport,
                Package,
                RunLast

task FullBuildAndPublish RunFirst,
                            Version,
                            Build,
                            Test,
                            TestReport,
                            Package,
                            Publish,
                            RunLast