Ako mám opísať prácu v dynamicky Azure DevOps?

0

Otázka

Mám niekoľko pracovných miest pre rôzne platformy, ktoré by som chcel spustiť paralelne. Ja by som chcel stavať iné platformy pre rôzne situácie (t. j. úplné stavať, dym, vytiahnuť žiadosť, atď.). Ako môžem vytvoriť zoznam pracovných miest dynamické založené na premenné?

Napríklad, ak je to jeden z "napevno" skúsenosti:

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

Ako by som mohol namiesto výpis z kolekcie premenná nastaví, t. j.

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

A spustiť, že na potrubí, ako napríklad:

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

Najlepšiu odpoveď

2

Môžete definovať v parameters a slučky to:

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é kľúčové slovo je popísané v dokumentoch tu: docs.microsoft.com/en-us/azure/devops/pipelines/process/...
Vince Bowdren

To je to, čo som skončil pomocou, však som dal jobs: nad each platform. Vďaka!
House

@Domu, máte pravdu! Som pevne moje syntax.
Shayki Abramczyk
1

Môžete alos použitie "jobList' typ šablóny parametre:

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 potom:

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

Hľadáte podmienky: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops&tabs=yaml

Etapy, pracovných miest, a krokov, to všetko môže mať ochorenie definované.

Napríklad, beh prácu, ak premenná je nastavená na hodnotu true:

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

V iných jazykoch

Táto stránka je v iných jazykoch

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