클라우드/Azure DevOps
Azure DevOps Pipeline 주요 내용
바리새인
2024. 3. 5. 21:02
변수 적용 및 사용
변수 정의 - 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