tasks/publishing.tasks.ps1
$BicepModulesToPublish = @() # Synopsis: Publish Bicep modules task PublishBicepModules GitVersion,{ # validate publish details if (!$BicepRegistryFqdn) { throw "The 'BicepRegistryFqdn' variables has not been defined" } elseif (!$BicepRegistryFqdn.EndsWith(".azurecr.io")) { throw "The 'BicepRegistryFqdn' must point to an Azure Container Registry with the '.azurecr.io' suffix - current value: $BicepRegistryFqdn" } # Publishing Bicep modules requires a logged-in Azure-Cli session if (!(Test-AzCliConnection)) { throw "You must be logged-in to azure-cli to publish Bicep modules to a private registry" } if (!$BaseRegistryPath) { $BaseRegistryPath = "bicep/modules" } if (!$BicepModuleVersionTag) { $BicepModuleVersionTag = ($script:GitVersion).SemVer } foreach ($file in $BicepModulesToPublish) { $registryTargetPath = "br:{0}/{1}/{2}:{3}" -f ` $BicepRegistryFqdn, $BaseRegistryPath, [IO.Path]::GetFileNameWithoutExtension($file), $BicepModuleVersionTag Write-Build White "Publishing $file -> $registryTargetPath" & az bicep publish -f $file -t $registryTargetPath if ($LASTEXITCODE -ne 0) { throw "Error whilst publishing Bicep module: $file -> $registryTargetPath" } } Write-Build Green "Bicep module published OK" } |