Можно ли использовать псевдонимы для параметров конвейера в Azure DevOps? - PullRequest
0 голосов
/ 09 июля 2020

Допустим, у меня в конвейере есть следующие параметры:

parameters:
- name: environment
  displayName: 'Environment'
  default: 'SERVER_0562'
  type: string
  values: 
  - 'SERVER_0562'
  - 'SERVER_5149'
  - 'SERVER_1892'

Но я не хочу, чтобы кто-либо, кто запускает конвейер, видел эти имена при выборе Environment из раскрывающегося списка. Тогда я хочу увидеть следующие имена:

- QA Server
- DEV Server
- PROD Server

Есть какой-нибудь «простой» способ сделать это или единственный способ - иметь дело с условными операторами?

${{ if eq(parameters.environment, 'DEV Server') }}:

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Вдохновленный вкладом @ Krzysztof Madej , я решил свою собственную проблему, условно назначив переменные :

parameters:
- name: environment
  displayName: 'Environment'
  default: 'QA Server'
  type: string
  values: 
  - 'QA Server'
  - 'DEV Server'
  - 'PROD Server'
  
trigger: none

variables:
  ${{ if eq(parameters.environment, 'QA Server') }}:
    bacon: SERVER_0562
  ${{ if eq(parameters.environment, 'DEV Server') }}:
    bacon: SERVER_5149
  ${{ if eq(parameters.environment, 'PROD Server') }}:
    bacon: SERVER_1892

jobs:
- job: build
  displayName: build
  steps:
  - script: echo building $(Build.BuildNumber) with ${{ variables.bacon }}

Я считаю, что это более простая реализация, так как я не зависим от сценария PowerShell.

1 голос
/ 09 июля 2020

Пожалуйста, проверьте это:


parameters:
- name: image
  displayName: Pool Image
  type: string
  default: Ubuntu
  values:
  - Windows
  - Ubuntu
  - MacOS
  
trigger: none

jobs:
- job: build
  displayName: build
  pool: 
    ${{ if eq(parameters.image, 'Ubuntu') }}:
      vmImage: 'ubuntu-latest'
    ${{ if eq(parameters.image, 'Windows') }}:
      vmImage: 'windows-latest'
    ${{ if eq(parameters.image, 'MacOS') }}:
      vmImage: 'macOS-latest'
  steps:
  - script: echo building $(Build.BuildNumber) with ${{ parameters.image }}

После того, как вы изменили вопрос, я думаю, это может вам помочь


parameters:
- name: environment
  displayName: 'Environment'
  default: 'QA Server'
  type: string
  values: 
  - 'QA Server'
  - 'DEV Server'
  - 'PROD Server'
  
trigger: none

variables:
- name: QA
  value: 'SERVER_0562'
- name: DEV
  value: 'SERVER_5149'
- name: PROD
  value: 'SERVER_1892'

jobs:
- job: build
  displayName: build
  pool: 
    vmImage: 'windows-latest'
  steps:
  - script: echo building $(Build.BuildNumber) with ${{ parameters.environment }}
  - powershell: |
      
      If('${{ parameters.environment }}' -eq 'QA Server') {
        Write-Host '##vso[task.setvariable variable=folderName;isOutput=true]$(QA)'
      } ElseIf('${{ parameters.environment }}' -eq 'DEV Server') {
        Write-Host '##vso[task.setvariable variable=folderName;isOutput=true]$(DEV)'
      } ElseIf('${{ parameters.environment }}' -eq 'PROD Server') {
        Write-Host '##vso[task.setvariable variable=folderName;isOutput=true]$(PROD)'
      } Else {
        Write-Host 'I am here'
      }
    name: setFolderName
  - powershell: |
      Write-Host '$(setFolderName.folderName)'
      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...