Azure YAML 이전 단계에서 실행 된 작업에서 변수 가져 오기

로스

두 단계로 구성된 Azure DevOps에서 YAML 파이프 라인을 만들고 있습니다.

첫 번째 단계 (전제 조건)는 git 커밋을 읽고 커밋의 영향을받은 서비스 목록을 포함하는 쉼표로 구분 된 변수를 생성합니다.

두 번째 단계 (Build)는 프로젝트의 빌드 및 단위 테스트를 담당합니다. 이 단계는 templates각 서비스에 대해 하나씩 많은로 구성됩니다 . 템플릿 스크립트에서 작업은 이전 단계에서 생성 된 변수에 해당 Service가 있는지 확인합니다. 작업이 서비스를 찾으면 계속해서 서비스를 빌드하고 테스트합니다. 그러나 서비스를 찾을 수 없으면 해당 작업을 건너 뜁니다.

Run.yml :

stages:
- stage: Prerequisites
  jobs:
  - job: SetBuildQueue
    steps:
    - task: powershell@2
      name: SetBuildQueue
      displayName: 'Set.Build.Queue'
      inputs:
        targetType: inline
        script: |
            ## ... PowerShell script to get changes - working as expected
            Write-Host "Build Queue Auto: $global:buildQueueVariable"
            Write-Host "##vso[task.setvariable variable=buildQueue;isOutput=true]$global:buildQueueVariable"

- stage: Build
  jobs:
  - job: StageInitialization

  - template: Build.yml
    parameters:
      projectName: Service001
      projectLocation: src/Service001

  - template: Build.yml
    parameters:
      projectName: Service002
      projectLocation: src/Service002

Build.yml :

parameters:
  projectName: ''
  projectLocation: ''

jobs:
- job:
  displayName: '${{ parameters.projectName }} - Build'
  dependsOn: SetBuildQueue
  continueOnError: true
  condition: and(succeeded(), contains(dependencies.SetBuildQueue.outputs['SetBuildQueue.buildQueue'], '${{ parameters.projectName }}'))
  steps:
  - task: NuGetToolInstaller@1
    displayName: 'Install Nuget'

발행물:

첫 번째 단계가 실행 buildQueue되면 PowerShell 스크립트 작업의 콘솔 출력에 표시된대로 채워지는 라는 변수가 생성됩니다 .

Service001 Changed
Build Queue Auto: Service001;

그러나 2 단계에 도달하고 빌드 템플릿을 실행하려고하면 조건을 확인하면 다음 출력이 반환됩니다.

Started: Today at 12:05 PM
Duration: 16m 7s
Evaluating: and(succeeded(), contains(dependencies['SetBuildQueue']['outputs']['SetBuildQueue.buildQueue'], 'STARS.API.Customer.Assessment'))
Expanded: and(True, contains(Null, 'service001'))
Result: False

내가 설정 어떻게 그래서 제 질문은 dependsOn하고 condition이전 단계에서 정보를 얻기 위해?

Shayki abramczyk

변수를 정의한 단계와 다른 단계에서 변수에 액세스하려고하기 때문입니다. 현재는 불가능합니다. 각 단계는 새로운 에이전트의 새로운 인스턴스입니다.

블로그 에서는 변수를 디스크에 쓴 다음 파이프 라인 아티팩트를 활용하여 파일로 전달하는 것과 관련된 해결 방법을 찾을 수 있습니다 .

작업에서 다른 단계의 다른 작업으로 변수 FOO를 전달하려면 :

  1. 전달하려는 모든 변수를 포함 할 폴더를 만듭니다. 모든 폴더가 작동 할 수 있지만 mkdir -p $(Pipeline.Workspace)/variables 와 같은 것이 좋은 생각 일 수 있습니다.
  2. 변수의 내용을 파일에 씁니다 (예 : echo "$FOO" > $(Pipeline.Workspace)/variables/FOO. 이름은 원하는대로 지정할 수 있지만 파일에 변수와 같은 이름을 지정하는 것이 좋습니다.
  3. $(Pipeline.Workspace)/variables폴더를 다음 이름의 파이프 라인 아티팩트로 게시하십시오.variables
  4. 두 번째 단계에서 변수 파이프 라인 아티팩트를 다운로드합니다.
  5. 예를 들어 각 파일을 변수로 읽습니다. FOO=$(cat $(Pipeline.Workspace)/variables/FOO)
  6. 첫 번째 예제에서했던 것처럼 현재 작업에서 변수를 노출합니다. echo "##vso[task.setvariable variable=FOO]$FOO"
  7. 그런 다음 Azure Pipelines 내에서 확장하여 변수에 액세스 ($(FOO))하거나 bash 스크립트 내에서 환경 변수로 사용할 수 있습니다 ($FOO).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ConcourseCI : 리소스 가져 오기의 매핑 / 이름이 변경된 출력에서 작업 실행

분류에서Dev

azure 다중 단계 파이프 라인 (YAML)에서 한 작업에서 다른 작업으로 변수 전달

분류에서Dev

Azure 파이프 라인에서 병합 된 분기 이름 가져 오기 yaml

분류에서Dev

Magnolia cms에서 실행 된 사용자 지정 작업에 대한 노드 이름 가져 오기

분류에서Dev

트랜잭션 범위에서 업데이트 된 행 수 가져 오기

분류에서Dev

오이 단계가 잘못된 단계에서 실패

분류에서Dev

javascript : 함수에 전달 된 실제 인수의 이름 가져 오기

분류에서Dev

Azure YAML-변수를 사용하여 단계 / 작업 실행 순서를 동적으로 설정

분류에서Dev

변수에서 중단 점을 실행할 때 가짜 값 가져 오기

분류에서Dev

Azure Powershell을 사용하여 현재 서비스 계획에 따라 배포 된 사이트 수 가져 오기

분류에서Dev

node.js에서 단위 테스트를 실행하는 가져 오기 함수에서 읽기 전용

분류에서Dev

이전에 실행 한 레이크 작업의 출력 가져 오기

분류에서Dev

ansible의 yaml 파일에서 변수 가져 오기

분류에서Dev

Python-GUI (TKinter), 전체 함수를 실행하지 않고 다른 함수에서 변수 가져 오기

분류에서Dev

작업 대기열에서 가져 오는 작업자가 실행할 격리 수준은 무엇입니까?

분류에서Dev

변수 값으로 구성된 변수 이름에서 사전 값 가져 오기

분류에서Dev

CallerInfo, 메소드에 전달 된 변수 이름 가져 오기 (예 : nameof)

분류에서Dev

CallerInfo, 메소드에 전달 된 변수 이름 가져 오기 (예 : nameof)

분류에서Dev

SQL Server에서 테이블 유형 매개 변수에 대해 생성 된 행 가져 오기

분류에서Dev

다른 Job Jenkins에 전달 된 매개 변수 가져 오기

분류에서Dev

이전 테이블과 비교하여 새 테이블에서 업데이트 된 행 가져 오기 -SQL

분류에서Dev

Pandas apply () 함수 내에서 이전 행 값 가져 오기

분류에서Dev

작업 쿼리에서 행 수 가져 오기

분류에서Dev

CSV에서 가져 오기 작업 전

분류에서Dev

showAllSteps : false 인 경우 호출 된 기능 파일의 작은 오이 단계가 오이 병렬 실행 보고서에 표시되지 않습니다.

분류에서Dev

Windows 7 "여기에서 명령 창 열기"가 업데이트 된 경로 변수를 가져 오지 않음

분류에서Dev

routing_dev.yml에서 가져 오는 YAML 배열에 변수 전달

분류에서Dev

업데이트 / 삭제를 실행하기 전에 행 가져 오기

분류에서Dev

작업 관리자로 앱이 종료 된 후에도 서비스가 계속 실행될 수 있습니까?

Related 관련 기사

  1. 1

    ConcourseCI : 리소스 가져 오기의 매핑 / 이름이 변경된 출력에서 작업 실행

  2. 2

    azure 다중 단계 파이프 라인 (YAML)에서 한 작업에서 다른 작업으로 변수 전달

  3. 3

    Azure 파이프 라인에서 병합 된 분기 이름 가져 오기 yaml

  4. 4

    Magnolia cms에서 실행 된 사용자 지정 작업에 대한 노드 이름 가져 오기

  5. 5

    트랜잭션 범위에서 업데이트 된 행 수 가져 오기

  6. 6

    오이 단계가 잘못된 단계에서 실패

  7. 7

    javascript : 함수에 전달 된 실제 인수의 이름 가져 오기

  8. 8

    Azure YAML-변수를 사용하여 단계 / 작업 실행 순서를 동적으로 설정

  9. 9

    변수에서 중단 점을 실행할 때 가짜 값 가져 오기

  10. 10

    Azure Powershell을 사용하여 현재 서비스 계획에 따라 배포 된 사이트 수 가져 오기

  11. 11

    node.js에서 단위 테스트를 실행하는 가져 오기 함수에서 읽기 전용

  12. 12

    이전에 실행 한 레이크 작업의 출력 가져 오기

  13. 13

    ansible의 yaml 파일에서 변수 가져 오기

  14. 14

    Python-GUI (TKinter), 전체 함수를 실행하지 않고 다른 함수에서 변수 가져 오기

  15. 15

    작업 대기열에서 가져 오는 작업자가 실행할 격리 수준은 무엇입니까?

  16. 16

    변수 값으로 구성된 변수 이름에서 사전 값 가져 오기

  17. 17

    CallerInfo, 메소드에 전달 된 변수 이름 가져 오기 (예 : nameof)

  18. 18

    CallerInfo, 메소드에 전달 된 변수 이름 가져 오기 (예 : nameof)

  19. 19

    SQL Server에서 테이블 유형 매개 변수에 대해 생성 된 행 가져 오기

  20. 20

    다른 Job Jenkins에 전달 된 매개 변수 가져 오기

  21. 21

    이전 테이블과 비교하여 새 테이블에서 업데이트 된 행 가져 오기 -SQL

  22. 22

    Pandas apply () 함수 내에서 이전 행 값 가져 오기

  23. 23

    작업 쿼리에서 행 수 가져 오기

  24. 24

    CSV에서 가져 오기 작업 전

  25. 25

    showAllSteps : false 인 경우 호출 된 기능 파일의 작은 오이 단계가 오이 병렬 실행 보고서에 표시되지 않습니다.

  26. 26

    Windows 7 "여기에서 명령 창 열기"가 업데이트 된 경로 변수를 가져 오지 않음

  27. 27

    routing_dev.yml에서 가져 오는 YAML 배열에 변수 전달

  28. 28

    업데이트 / 삭제를 실행하기 전에 행 가져 오기

  29. 29

    작업 관리자로 앱이 종료 된 후에도 서비스가 계속 실행될 수 있습니까?

뜨겁다태그

보관