Azure DevOps Pipeline 주요 내용

2024. 3. 5. 21:02클라우드/Azure DevOps

변수 적용 및 사용

https://learn.microsoft.com/ko-kr/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch

 

변수 정의 - Azure Pipelines

변수는 파이프라인에서 사용하기 위해 사용자가 정의한 이름-값 쌍입니다. 변수를 태스크 및 스크립트에 대한 입력으로 사용할 수 있습니다.

learn.microsoft.com

 

variables:
 - name: projectName
   value: contoso

steps: 
- bash: echo $(projectName)
- powershell: echo $(projectName)
- script: echo $(projectName)

--kubeconfig 옵션 제거 방법

# config파일의 위치가 다른 곳에 있는 경우
- task: Bash@3
  displayName: 'ACR Login & Push'
  inputs:
    targetType: 'inline'
    script: |
		kubectl get secret -n {namespace} --kubeconfig={파일명}

# 환경변수에 적용하여, 옵션 기술하지 않아도 작동하도록 처리
variables:
	- name: KUBECONFIG
      value: {파일명}

- task: Bash@3
  displayName: 'ACR Login & Push'
  inputs:
    targetType: 'inline'
    script: |
		kubectl get secret -n {namespace}

Trigger 적용

# main branche가 변경되면 trigger
# exlcude에 해당하는 파일이 변경되면 trigger 안됨
trigger:
  branches:
    include:
    - main
  paths:
    exclude:
    - test-pipelines.yml
    - test2-pipelines.yml

Image 생성

- task: Bash@3
  displayName: 'Docker Build'
  inputs:
    targetType: 'inline'
    script: |
      #docker buildx version
      #docker buildx ls
      docker buildx build -f .docker/Dockerfile -t {ACR 이름}.azurecr.io/{image 이름}:{image 태그} {image 생성 디렉토리}

ACR 로그인

- task: Bash@3
  displayName: 'ACR Login & Push'
  inputs:
    targetType: 'inline'
    script: |
      docker login -u {tocken 이름} -p {token 비밀번호} {ACR 이름}.azurecr.io
      docker push {ACR 이름}.azurecr.io/{image 이름}:{image 태그}

Script 실행 내용을 출력

# 'set -x'를 사용
- task: Bash@3
  displayName: 'Test'
  inputs:
    targetType: 'inline'
    script: |
      set -x
      kubectl get config get-contexts
      kubectl version

Debug 모드로 변경

pipeline 변수 설정 방법 중 한 가지를 통하여 'System.Debug' 변수를 'true'로 설정하면 output에서 debug 내용이 출력됨

system.debug=true

에러 코드 회피 방법

프로세스와 상관없이 실행하는 프로그램에서 return 코드를 반환하는데, 그것을 pipeline이 에러코드를 인식하는 경우가 있음
특히, git diff, diff 명령어의 경우, 차이없음(0), 차이존재(1), 오류(2)를 반환함
이럴 경우, '|| true' 구문을 뒤에 넣어 주면 무시하고 다음 작업으로 넘어감

# 반환코드를 에러 코드로 인식함
git diff a.txt b.txt

# 반환되는 코드를 무시함
git diff a.txt b.txt || true