Module/build.ps1 (46 lines of code) (raw):
New-Item .\Module\EnterprisePolicyAsCode\internal\functions -ItemType Directory -Force
New-Item .\Module\EnterprisePolicyAsCode\functions -ItemType Directory -Force
$tag_name = $env:TAG_NAME -replace "v", ""
if ($tag_name -match "-") {
Copy-Item -Path .\Module\EnterprisePolicyAsCode.prerelease.psd1 -Destination .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1 -Force
$isPreRelease = $true
}
else {
Copy-Item -Path .\Module\EnterprisePolicyAsCode.release.psd1 -Destination .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1 -Force
}
Get-ChildItem -Path .\Scripts\Helpers\*.ps1 -Recurse -File -Exclude Add-HelperScripts.ps1 | Copy-Item -Destination .\Module\EnterprisePolicyAsCode\internal\functions
# Deploy Functions
$functionNames = (Get-ChildItem .\Scripts\Deploy\* -File -Include *.ps1).BaseName
$functionNames | Foreach-Object {
"function $_ {" | Set-Content ".\Module\EnterprisePolicyAsCode\functions\$_.ps1" -Force
Get-Content .\Scripts\Deploy\$_.ps1 | Where-Object { $_ -notmatch "^\." -and $_ -notmatch "^#Requires" } | Add-Content ".\Module\EnterprisePolicyAsCode\functions\$_.ps1" -Force
"}" | Add-Content ".\Module\EnterprisePolicyAsCode\functions\$_.ps1" -Force
}
# Operations
$functionNames = (Get-ChildItem .\Scripts\Operations\* -File -Include *.ps1).BaseName
$functionNames | Foreach-Object {
"function $_ {" | Set-Content ".\Module\EnterprisePolicyAsCode\functions\$_.ps1" -Force
Get-Content .\Scripts\Operations\$_.ps1 | Where-Object { $_ -notmatch "^\." -and $_ -notmatch "^#Requires" } | Add-Content ".\Module\EnterprisePolicyAsCode\functions\$_.ps1" -Force
"}" | Add-Content ".\Module\EnterprisePolicyAsCode\functions\$_.ps1" -Force
}
# Cloud Adoption Framework
$functionNames = (Get-ChildItem .\Scripts\CloudAdoptionFramework\* -File -Include *.ps1).BaseName
$functionNames | Foreach-Object {
"function $_ {" | Set-Content ".\Module\EnterprisePolicyAsCode\functions\$_.ps1" -Force
Get-Content .\Scripts\CloudAdoptionFramework\$_.ps1 | Where-Object { $_ -notmatch "^\." -and $_ -notmatch "^#Requires" } | Add-Content ".\Module\EnterprisePolicyAsCode\functions\$_.ps1" -Force
"}" | Add-Content ".\Module\EnterprisePolicyAsCode\functions\$_.ps1" -Force
}
# Hydration Kit
Get-ChildItem -Path .\Scripts\HydrationKit\*.ps1 -Recurse -File | Copy-Item -Destination .\Module\EnterprisePolicyAsCode\functions
Copy-Item -Path .\Scripts\CloudAdoptionFramework\policyAssignments -Destination .\Module\EnterprisePolicyAsCode -Force -Recurse
(Get-Content -Path .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1) -replace "FunctionsToExport = ''", "FunctionsToExport = @($((Get-ChildItem -Path .\Module\EnterprisePolicyAsCode\functions | Select-Object -ExpandProperty BaseName) | Join-String -Separator "," -DoubleQuote))" | Set-Content .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1
if ($isPreRelease) {
$version = ($tag_name -split "-")[0]
$prereleaseString = ($tag_name -split "-")[1]
(Get-Content -Path .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1) -replace "ModuleVersion = ''", "ModuleVersion = '$version'" | Set-Content .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1
(Get-Content -Path .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1) -replace "Prerelease = ''", "Prerelease = '$prereleaseString'" | Set-Content .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1
Get-Content -Path .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1
}
else {
(Get-Content -Path .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1) -replace "ModuleVersion = ''", "ModuleVersion = '$tag_name'" | Set-Content .\Module\EnterprisePolicyAsCode\EnterprisePolicyAsCode.psd1
}