mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.3 KiB
YAML
56 lines
2.3 KiB
YAML
4 years ago
|
# This template uses the provided targets and optional groups to generate a matrix which is then passed to the test template.
|
||
|
# If this matrix template does not provide the required functionality, consider using the test template directly instead.
|
||
|
|
||
|
parameters:
|
||
|
# A required list of dictionaries, one per test target.
|
||
|
# Each item in the list must contain a "test" or "name" key.
|
||
|
# Both may be provided. If one is omitted, the other will be used.
|
||
|
- name: targets
|
||
|
type: object
|
||
|
|
||
|
# An optional list of values which will be used to multiply the targets list into a matrix.
|
||
|
# Values can be strings or numbers.
|
||
|
- name: groups
|
||
|
type: object
|
||
|
default: []
|
||
|
|
||
|
# An optional format string used to generate the job name.
|
||
|
# - {0} is the name of an item in the targets list.
|
||
|
- name: nameFormat
|
||
|
type: string
|
||
|
default: "{0}"
|
||
|
|
||
|
# An optional format string used to generate the test name.
|
||
|
# - {0} is the name of an item in the targets list.
|
||
|
- name: testFormat
|
||
|
type: string
|
||
|
default: "{0}"
|
||
|
|
||
|
# An optional format string used to add the group to the job name.
|
||
|
# {0} is the formatted name of an item in the targets list.
|
||
|
# {{1}} is the group -- be sure to include the double "{{" and "}}".
|
||
|
- name: nameGroupFormat
|
||
|
type: string
|
||
|
default: "{0} - {{1}}"
|
||
|
|
||
|
# An optional format string used to add the group to the test name.
|
||
|
# {0} is the formatted test of an item in the targets list.
|
||
|
# {{1}} is the group -- be sure to include the double "{{" and "}}".
|
||
|
- name: testGroupFormat
|
||
|
type: string
|
||
|
default: "{0}/{{1}}"
|
||
|
|
||
|
jobs:
|
||
|
- template: test.yml
|
||
|
parameters:
|
||
|
jobs:
|
||
|
- ${{ if eq(length(parameters.groups), 0) }}:
|
||
|
- ${{ each target in parameters.targets }}:
|
||
|
- name: ${{ format(parameters.nameFormat, coalesce(target.name, target.test)) }}
|
||
|
test: ${{ format(parameters.testFormat, coalesce(target.test, target.name)) }}
|
||
|
- ${{ if not(eq(length(parameters.groups), 0)) }}:
|
||
|
- ${{ each group in parameters.groups }}:
|
||
|
- ${{ each target in parameters.targets }}:
|
||
|
- name: ${{ format(format(parameters.nameGroupFormat, parameters.nameFormat), coalesce(target.name, target.test), group) }}
|
||
|
test: ${{ format(format(parameters.testGroupFormat, parameters.testFormat), coalesce(target.test, target.name), group) }}
|