Successfully added
DevOps
by Patrik
Passing Project Names as Parameters to PowerShell in GitLab Pipelines
When building CI pipelines in GitLab for multiple projects, you often need to pass a list of project names to a script. However, GitLab CI doesn’t support arrays as environment variables. The best solution is to pass the values as a comma-separated string and split them inside your PowerShell script. This method is clean, compatible, and easy to maintain.
Implementation
Step 1: Define the project list as a CSV string in .gitlab-ci.yml
variables:
PROJECT_NAMES: "ProjectA,ProjectB,ProjectC"
Step 2: Pass it as a parameter to the PowerShell script
script:
- powershell -ExecutionPolicy Bypass -File .\Create-Pipeline.ps1 -projectNamesRaw "$env:PROJECT_NAMES"
Step 3: Process the string inside the PowerShell script
param(
[Parameter(Mandatory)]
[string]$projectNamesRaw
)
# Split and trim project names into an array
$projectNames = $projectNamesRaw -split ',' | ForEach-Object { $_.Trim() }
foreach ($projectName in $projectNames) {
Write-Output "Processing project: $projectName"
# Your logic here
}
Why This Works
- GitLab treats all variables as strings, so this approach avoids format issues
-split
creates an array inside PowerShellTrim()
ensures clean names even with extra spaces
gitlab
powershell
scripting
variables
automation
Referenced in:
Comments