Futtatókörnyezeti paraméterek

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

A futtatókörnyezeti paraméterekkel jobban szabályozhatja, hogy milyen értékeket lehet átadni egy folyamatnak. A futtatókörnyezeti paraméterekkel a következőket teheti:

  • Különböző értékek biztosítása szkripteknek és feladatoknak futásidőben
  • Paramétertípusok, engedélyezett tartományok és alapértelmezett értékek szabályozása
  • Feladatok és szakaszok dinamikus kiválasztása sablonkifejezésekkel

A paramétereket a sablonokban és a folyamatban is megadhatja. A paraméterek olyan adattípusokkal rendelkeznek, mint a szám és a sztring, és az értékek egy részhalmazára korlátozhatók. A parameters YAML szakasza határozza meg, hogy mely paraméterek érhetők el.

A paraméterek csak a sablon elemzésekor érhetők el. A paraméterek közvetlenül a folyamat futtatása előtt lesznek kibontva, így a körülötte lévő ${{ }} értékek paraméterértékekre lesznek cserélve. Használjon változókat , ha azt szeretné, hogy az értékek szélesebb körben elérhetők legyenek a folyamat futtatása során.

Megjegyzés

Ez az útmutató nem vonatkozik a klasszikus folyamatokra. A klasszikus folyamatok paramétereiért lásd: Folyamatparaméterek (klasszikus).

A paramétereknek nevet és adattípust kell tartalmazniuk. A paraméterek nem választhatók. A YAML-fájlban vagy a folyamat futtatásakor hozzá kell rendelni egy alapértelmezett értéket. Ha nem rendel hozzá alapértelmezett értéket, vagy az értékre falsevan állítvadefault, a rendszer az első elérhető értéket használja.

A templateContext használatával további tulajdonságokat adhat át a sablonban paraméterekként használt szakaszoknak, lépéseknek és feladatoknak.

Paraméterek használata folyamatokban

Állítsa be a futásidejű paramétereket a YAML elején.

Ez a példafolyamat tartalmaz egy paramétert image , amely három üzemeltetett ügynököt tartalmaz beállításként string . A feladatok szakaszban az pool érték határozza meg a feladat futtatásához használt paraméter ügynökét. A trigger értéke nincs, így kiválaszthatja image annak értékét, amikor manuálisan aktiválja a folyamatot a futtatáshoz.

parameters:
- name: image
  displayName: Pool Image
  type: string
  default: ubuntu-latest
  values:
  - windows-latest
  - ubuntu-latest
  - macOS-latest

trigger: none

jobs:
- job: build
  displayName: build
  pool: 
    vmImage: ${{ parameters.image }}
  steps:
  - script: echo building $(Build.BuildNumber) with ${{ parameters.image }}

A folyamat futtatásakor válassza ki a Készlet rendszerképét. Ha nem ad meg kijelölést, a rendszer az alapértelmezett beállítást ubuntu-latest használja.

futtatókörnyezet paraméterei

Feltételes feltételek használata paraméterekkel

A paramétereket a feltételes logika részeként is használhatja. A feltételes feltételek esetén a YAML egy része akkor fut, ha az megfelel a if feltételeknek.

Paraméterek használata a futtatott lépések meghatározásához

Ez a folyamat egy második logikai paramétert ad hozzá, testamely a folyamatokban futtatott tesztek futtatásának szabályozására használható. Ha az értéke test igaz, az összes teszt futtatása parancsot eredményező lépés fut.

parameters:
- name: image
  displayName: Pool Image
  values:
  - windows-latest
  - ubuntu-latest
  - macOS-latest
- name: test
  displayName: Run Tests?
  type: boolean
  default: false

trigger: none

jobs:
- job: build
  displayName: Build and Test
  pool: 
    vmImage: ${{ parameters.image }}
  steps:
  - script: echo building $(Build.BuildNumber)
  - ${{ if eq(parameters.test, true) }}:
    - script: echo "Running all the tests"

Paraméterek használata a használt konfiguráció beállításához

Paraméterekkel is beállíthatja, hogy mely feladatok futnak. Ebben a példában különböző architektúrák épülnek fel a paraméter értékétől config függően, amely egy string típus. Alapértelmezés szerint a és x64 az x86 architektúra is buildel.

parameters:
- name: configs
  type: string
  default: 'x86,x64'

trigger: none

jobs:
- ${{ if contains(parameters.configs, 'x86') }}:
  - job: x86
    steps:
    - script: echo Building x86...
- ${{ if contains(parameters.configs, 'x64') }}:
  - job: x64
    steps:
    - script: echo Building x64...
- ${{ if contains(parameters.configs, 'arm') }}:
  - job: arm
    steps:
    - script: echo Building arm...

Szakasz szelektív kizárása

Paraméterekkel is beállíthatja, hogy fut-e egy szakasz. Ebben a példában egy folyamat négy fázissal és különböző feladatokkal rendelkezik minden fázishoz. A Teljesítményteszt szakasz akkor fut, ha a paraméter runPerfTests igaz. Az alapértelmezett értéke runPerfTests hamis, ezért frissítések nélkül a négy szakaszból csak három fut.

parameters:
- name: runPerfTests
  type: boolean
  default: false

trigger: none

stages:
- stage: Build
  displayName: Build
  jobs:
  - job: Build
    steps:
    - script: echo running Build


- stage: UnitTest
  displayName: Unit Test
  dependsOn: Build
  jobs:
  - job: UnitTest
    steps:
    - script: echo running UnitTest


- ${{ if eq(parameters.runPerfTests, true) }}:
  - stage: PerfTest
    displayName: Performance Test
    dependsOn: Build
    jobs:
    - job: PerfTest
      steps:
      - script: echo running PerfTest


- stage: Deploy
  displayName: Deploy
  dependsOn: UnitTest
  jobs:
  - job: Deploy
    steps:
    - script: echo running UnitTest

A paraméterek átcsatolása

A sztring, a szám és a logikai paraméterek között is végighaladhat.

Ebben a példában végighalad a paramétereken, és kinyomtatja az egyes paraméterek nevét és értékét. Négy különböző paraméter létezik, és mindegyik más típust jelöl. myStringName egy egysoros sztring. myMultiString egy többsoros sztring. myNumber is a number. myBoolean logikai érték. A lépések szakaszban a szkriptfeladatok az egyes paraméterek kulcsát és értékét jelenítik meg.

# start.yaml
parameters:
- name: myStringName
  type: string
  default: a string value
- name: myMultiString
  type: string
  default: default
  values:
  - default
  - ubuntu
- name: myNumber
  type: number
  default: 2
  values:
  - 1
  - 2
  - 4
  - 8
  - 16
- name: myBoolean
  type: boolean
  default: true

steps: 
- ${{ each parameter in parameters }}:
  - script: echo ${{ parameter.Key }} 
  - script: echo ${{ parameter.Value }}
# azure-pipeline.yaml
trigger: none

extends:
  template: start.yaml

Üres paraméterobjektum keresése

A kifejezéssellength() ellenőrizheti, hogy egy objektumparaméternek nincs-e értéke.

parameters:
- name: foo
  type: object
  default: []

steps:
- checkout: none
- ${{ if eq(length(parameters.foo), 0) }}:
  - script: echo Foo is empty
    displayName: Foo is empty

Paraméter adattípusai

Adattípus Jegyzetek
string sztring
number lehet, hogy a -ra korlátozódik values:, ellenkező esetben bármely számszerű sztring elfogadott
boolean true vagy false
object bármilyen YAML-struktúra
step egyetlen lépés
stepList lépések sorozata
job egyetlen feladat
jobList feladatütemezés
deployment egyetlen üzembehelyezési feladat
deploymentList üzembehelyezési feladatok sorozata
stage egyetlen fázis
stageList szakaszok sorozata

A stepList, job, jobList, deployment, deploymentList, stage és stageList adattípusok mind szabványos YAML-sémaformátumot használnak. Ez a példa sztringet, számot, logikai értéket, objektumot, lépést és lépéslistát tartalmaz.

parameters:
- name: myString
  type: string
  default: a string
- name: myMultiString
  type: string
  default: default
  values:
  - default
  - ubuntu
- name: myNumber
  type: number
  default: 2
  values:
  - 1
  - 2
  - 4
  - 8
  - 16
- name: myBoolean
  type: boolean
  default: true
- name: myObject
  type: object
  default:
    foo: FOO
    bar: BAR
    things:
    - one
    - two
    - three
    nested:
      one: apple
      two: pear
      count: 3
- name: myStep
  type: step
  default:
    script: echo my step
- name: mySteplist
  type: stepList
  default:
    - script: echo step one
    - script: echo step two

trigger: none

jobs: 
- job: stepList
  steps: ${{ parameters.mySteplist }}
- job: myStep
  steps:
    - ${{ parameters.myStep }}