public/Start-AzureDSCCompilation.ps1

function Start-AzureDSCCompilation {
    
    [cmdletbinding()]
    
    Param (
    
        [string]$ResourceGroupName,
        [string]$AutomationAccountName,
        [string]$ConfigurationName

    )

    Begin {}
    Process 
    {

        Try {
                $CompilationJob = Start-AzureRmAutomationDscCompilationJob -ResourceGroupName $ResourceGroupName -AutomationAccountName $AutomationAccountName -ConfigurationName $ConfigurationName -ErrorAction Stop -Verbose
        }
        Catch { 
                $_
                break
        }

        while($CompilationJob.EndTime –eq $null -and $CompilationJob.Exception –eq $null) {
        
            Try { 
                    $CompilationJob = $CompilationJob | Get-AzureRmAutomationDscCompilationJob -ErrorAction Stop -Verbose
            }
            Catch { 
                    $_
                    break
            }
            Start-Sleep -Seconds 3
            }

            $CompilationJob | Get-AzureRmAutomationDscCompilationJobOutput –Stream Any -Verbose

    } # end process block
    End {}
}