Jak mám popsat práci v dynamicky Azure DevOps?

0

Otázka

Mám řadu pracovních míst pro různé platformy chtěl bych běžet paralelně. Rád bych postavil jinou sadu platformy pro různé situace (tj. plné stavět, kouř, pull request, apod.). Jak mohu vytvořit seznam pracovních míst dynamické, založené na proměnné?

Například, pokud tohle je jeden z "hard-coded" implementace:

jobs:

- job: Platform1
  pool: Pool1
  steps:
      - template: minimal_template.yml
        parameters:
          BuildTarget: Platform1

- job: Platform2
  pool: Pool1
  steps:
      - template: minimal_template.yml
        parameters:
          BuildTarget: Platform2
        
- job: Platform3
  pool: Pool2
  steps:
      - template: minimal_template.yml
        parameters:
          BuildTarget: Platform3

Jak jsem mohl, místo, výtažek z kolekce variabilních sestav, tj.

[[Platform1, Pool1], [Platform2, Pool1], [Platform3, Pool2]]

A provedení na potrubí, jako je:

jobs:

??(Foreach platform in platforms)??

- job: $(platform[0])
  pool: $(platform[1])
  steps:
      - template: minimal_template.yml
        parameters:
          BuildTarget: $(platform[0])
azure-devops azure-pipelines
2021-11-24 00:29:59
3

Nejlepší odpověď

2

Můžete jej definovat v parameters a smyčky je:

parameters:
  - name: Platforms
    type: object
    default:
      - name: 'Platform1'
        pool: 'Platform1Pool'
      - name: 'Platform2'
        pool: 'Platform2Pool'
jobs:
- ${{ each platform in parameters.Platforms}}:        
  - job: ${{ platform.name }}
     pool: ${{ platform.pool }}
     steps:
         - template: minimal_template.yml
2021-11-30 07:41:07

Na Každé klíčové slovo je popsáno v dokumentech zde: docs.microsoft.com/en-us/azure/devops/pipelines/process/...
Vince Bowdren

To je to, co jsem použil, nicméně jsem dal jobs: nad each platform. Díky!!!
House

@Domě máš pravdu! Opravil jsem mé syntaxe.
Shayki Abramczyk
1

Můžete také použít 'jobList' typ pro parametry šablony:

parameters:
- name: 'testsJobsList'
  type: jobList
  default: []

jobs:
- ${{ each job in parameters.testsJobsList }}: # Each job
  - ${{ each pair in job }}:          # Insert all properties other than "steps"
      ${{ if ne(pair.key, 'steps') }}:
        ${{ pair.key }}: ${{ pair.value }}
    steps:                            # Wrap the steps
    - ${{ job.steps }}                # Users steps

A pak:

trigger:
- none

pool:
  vmImage: 'windows-latest'

jobs:
- template: deployment-template.yml
  parameters:
    testsJobsList: 
      - job: Platform1
        pool: Platform1Pool
        steps:
        - template: minimal_template.yml
      - job: Platform2
        pool: Platform2Pool
        steps:
        - template: minimal_template.yml
      
2021-11-24 08:45:51
0

Hledáte podmínek: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops&tabs=yaml

Fáze, pracovních míst, a kroky mohou mít všechny podmínky, definice.

Například, běží zaměstnání, je-li proměnná nastavena na hodnotu true:

condition: eq(variables['System.debug'], 'true')
2021-11-24 10:19:20

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................