Skip to content

Commit 5e31d00

Browse files
Merge pull request #7752 from MicrosoftDocs/users/jukullam/stringlist-addition
Adding stringList examples
2 parents ed3d9cf + af23625 commit 5e31d00

File tree

2 files changed

+56
-3
lines changed

2 files changed

+56
-3
lines changed

docs/pipelines/process/includes/parameter-data-types.md

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,13 @@ ms.date: 08/30/2024
88
ai-usage: ai-assisted
99
---
1010

11+
> [!IMPORTANT]
12+
> The new stringList data type feature will roll out over the next month.
13+
1114
| Data type | Notes |
1215
|-----------|-------|
1316
| `string` | string
17+
| `stringList` | a list of items, multiple can be selected. Not available in templates
1418
| `number` | may be restricted to `values:`, otherwise any number-like string is accepted
1519
| `boolean` | `true` or `false`
1620
| `object` | any YAML structure
@@ -23,7 +27,10 @@ ai-usage: ai-assisted
2327
| `stage` | a single stage
2428
| `stageList` | sequence of stages
2529

26-
The step, stepList, job, jobList, deployment, deploymentList, stage, and stageList data types all use standard YAML schema format. This example includes string, number, boolean, object, step, and stepList.
30+
The `step`, `stepList`, `job`, `jobList`, `deployment`, `deploymentList`, `stage`, `stringList`, and `stageList` data types all use standard YAML schema format. This example includes `string`, `number`, `boolean`, `object`, `step`, and `stepList`.
31+
32+
> [!NOTE]
33+
> The `stringList` data type isn't available in templates. Use the `object` data type in templates instead.
2734
2835
```yaml
2936
parameters:
@@ -33,11 +40,22 @@ parameters:
3340

3441
- name: myMultiString # Define a parameter named 'myMultiString'
3542
type: string # The parameter type is string
36-
default: default # Default value is 'default'
43+
default: default # Default value is 'default', only one default
3744
values: # Allowed values for 'myMultiString'
3845
- default
3946
- ubuntu
4047

48+
- name: myStringlist # Define a parameter named 'myStringlist'
49+
type: stringList # The parameter type is stringList
50+
displayName: Regions
51+
values: # Allowed values for 'myStringlist'
52+
- WUS
53+
- CUS
54+
- EUS
55+
default: # Default values
56+
- WUS
57+
- CUS
58+
4159
- name: myNumber # Define a parameter named 'myNumber'
4260
type: number # The parameter type is number
4361
default: 2 # Default value is 2
@@ -76,7 +94,7 @@ parameters:
7694
default: # Default value is a list of steps
7795
- script: echo step one
7896
- script: echo step two
79-
97+
8098
trigger: none
8199

82100
jobs:
@@ -86,4 +104,9 @@ jobs:
86104
- job: myStep # Define a job named 'myStep'
87105
steps:
88106
- ${{ parameters.myStep }} # Use the step from the 'myStep' parameter
107+
108+
- job: stringList # Define a job named 'stringList'
109+
steps:
110+
- ${{ each region in parameters.myStringlist }}:
111+
- script: echo ${{region}}
89112
```

docs/pipelines/process/template-expressions.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,36 @@ jobs:
317317
- script: echo So will this!
318318
```
319319

320+
You can also use `stringList` to define and interate over parameters that contain a list of items.
321+
322+
> [!NOTE]
323+
> The `stringList` data type isn't available in templates. Use the `object` data type in templates instead.
324+
325+
326+
```yaml
327+
parameters:
328+
- name: regions
329+
type: stringList
330+
displayName: Regions
331+
values:
332+
- WUS
333+
- CUS
334+
- EUS
335+
default:
336+
- WUS
337+
- EUS
338+
339+
stages:
340+
- ${{ each stage in parameters.regions}}:
341+
- stage: ${{stage}}
342+
displayName: Deploy to ${{stage}}
343+
jobs:
344+
- job:
345+
steps:
346+
- script: ./deploy ${{stage}}
347+
```
348+
349+
320350
You can also manipulate the properties of whatever you're iterating over.
321351
For example, to add more dependencies:
322352

0 commit comments

Comments
 (0)