Product: PowerShell Universal
Version: 4.0.10
I would like to use the same Git repository for non-production and production environments, but the PowerShell Universal repository contains some environment-specific configuration (such as SAML config in authentication.ps1).
Eventually, I want to have a more traditional deployment pipeline handling the separation of environment-specific configuration and the rest of the code, but I’m curious if this is something I can accomplish with the built-in Git Sync feature.
If I add a file like ./.universal/authentication.ps1
to gitignore, would I then be able to manage a separate version in each environment while still syncing the rest of the repository?
We ran into a similar setup and ended up using the same code base for dev/test/prod but using the PSUHeader region for the .universal files.
for example in the variables.ps1 I have the following.
#region PSUHeader
switch ($ENV:COMPUTERNAME) {
"PSU1" {
$Environment = "Prod"
$CurrentHostName = "https://hostname.com"
}
"PSU2" {
$Environment = "Test"
$CurrentHostName = "https://hostname.com
}
Default {
$Environment = "Dev"
$CurrentHostName = "http://localhost:5000"
}
}
New-PSUVariable -Name "HostName" -Value $CurrentHostName -Description "Hostname of the PSU instance"
New-PSUVariable -Name "Environment" -Value $Environment -Description "PSU environment type"
#endregion
Awesome! I was also wondering if this would work. Haven’t had a moment to try it or gitignore yet, but I like this approach better. Thank you.
This isn’t perfect, so when you configure this PSU will show the vars, but if you change the variables, such as making a new one and saving through the UI, you will see duplicates.
@adam - Any thoughts on this approach?
Yeah, I’ve noticed the duplicates. I’m up to five now.