Azure Pipelines 사용
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018
Azure Pipelines는 CI(연속 통합) 및 CD(지속적인 업데이트)를 지원하여 코드를 지속적으로 테스트, 빌드 및 배포합니다. 파이프라인을 정의하여 이 작업을 수행합니다.
파이프라인을 빌드하는 최신 방법은 YAML 파이프라인 편집기를 사용하는 것입니다. 클래식 편집기에서 클래식 파이프라인을 사용할 수도 있습니다.
Azure Pipelines는 CI(연속 통합) 및 CD(지속적인 업데이트)를 지원하여 코드를 지속적으로 테스트, 빌드 및 배포합니다. 이를 위해 클래식이라고도 하는 사용자 인터페이스를 사용하여 파이프라인을 정의합니다.
참고
Microsoft TFS(Team Foundation Server) 2018 이하 버전에서 빌드 및 릴리스 ‘파이프라인’은 ‘정의’라고 하며 ‘실행’은 ‘빌드’, ‘서비스 연결’은 ‘서비스 엔드포인트’, ‘스테이지’는 ‘환경’, ‘작업’은 ‘단계’라고 합니다.
테스트, 빌드 및 배달 자동화
CI(연속 통합)는 프로젝트에 대한 테스트 및 빌드를 자동화합니다. CI는 더 쉽고 빠르게 해결할 수 있는 개발 주기 초기에 버그 또는 문제를 파악하는 데 도움이 됩니다. 아티팩트로 알려진 항목은 CI 시스템에서 생성됩니다. 지속적인 업데이트 릴리스 파이프라인에서 자동 배포를 구동하는 데 사용됩니다.
지속적인 업데이트는 여러 단계에서 코드를 자동으로 배포하고 테스트하여 품질을 높이는 데 도움이 됩니다. 연속 통합 시스템은 인프라 및 앱을 포함하는 배포 가능한 아티팩트를 생성합니다. 자동화된 릴리스 파이프라인은 이러한 아티팩트를 사용하여 선택한 대상에 새 버전 및 픽스를 릴리스합니다.
CI(연속 통합) | CD(지속적인 업데이트) |
---|---|
- 코드 검사 늘리기 - 테스트 및 빌드 실행을 분할하여 더 빠르게 빌드 - 손상된 코드를 자동으로 배송하지 않도록 합니다. - 지속적으로 테스트 실행 |
- 프로덕션에 코드 자동 배포 - 배포 대상에 최신 코드가 있는지 확인 - CI 프로세스에서 테스트된 코드 사용 |
YAML 구문을 사용하여 파이프라인 정의
앱의 나머지 부분과 함께 라는 azure-pipelines.yml
YAML 파일에서 파이프라인을 정의합니다.
- 파이프라인은 코드로 버전이 지정되며, 분기 구조도 동일합니다. 끌어오기 요청 및 분기 빌드 정책의 코드 검토를 통해 변경 내용의 유효성을 검사합니다.
- 사용하는 모든 분기는 파일을 수정하여 파이프라인을 수정할
azure-pipelines.yml
수 있습니다. YAML 파이프라인에 대한 분기 고려 사항에 대해 자세히 알아봅니다. - 빌드 프로세스를 변경하면 중단되거나 예기치 않은 결과가 발생할 수 있습니다. 변경 내용은 코드베이스의 나머지 부분과 함께 버전이 제어되므로 이슈를 더 쉽게 확인할 수 있습니다.
다음 기본 단계를 따릅니다.
- Git 리포지토리를 사용하도록 Azure Pipelines를 구성합니다.
azure-pipelines.yml
파일을 편집하여 빌드를 정의합니다.- 코드를 버전 제어 리포지토리로 푸시합니다. 이 작업은 기본 트리거를 시작하여 결과를 빌드 및 배포한 다음 결과를 모니터링합니다.
이제 코드가 업데이트, 빌드, 테스트 및 패키지되었으므로 원하는 대상에 배포할 수 있습니다.
YAML 파이프라인은 TFS 2018 및 이전 버전에서는 사용할 수 없습니다.
클래식 인터페이스를 사용하여 파이프라인 정의
클래식 사용자 인터페이스 편집기를 사용하여 Azure DevOps 웹 포털에서 파이프라인을 만들고 구성합니다. 빌드 파이프라인를 정의하여 코드를 빌드 및 테스트한 다음 아티팩트를 게시합니다. 또한 릴리스 파이프라인을 정의하여 이러한 아티팩트를 사용하고 배포 대상에 배포합니다.
다음 기본 단계를 따릅니다.
- Git 리포지토리를 사용하도록 Azure Pipelines를 구성합니다.
- Azure Pipelines 클래식 편집기를 사용하여 빌드 및 릴리스 파이프라인을 만들고 구성합니다.
- 코드를 버전 제어 리포지토리로 푸시합니다. 이 작업(action)은 파이프라인을 트리거하고 코드 빌드 또는 테스트와 같은 작업(task)을 실행합니다.
빌드는 스테이징 또는 프로덕션에 배포와 같은 작업을 실행하기 위해 파이프라인의 나머지 부분에 사용되는 아티팩트를 만듭니다.
이제 코드가 업데이트, 빌드, 테스트 및 패키지되었으므로 원하는 대상에 배포할 수 있습니다.
기능 가용성
특정 파이프라인 기능은 YAML을 사용하거나 클래식 인터페이스를 사용하여 빌드 또는 릴리스 파이프라인을 정의할 때만 사용할 수 있습니다. 다음 표에서는 지원되는 기능과 작업 및 메서드를 나타냅니다.
기능 | YAML | 클래식 빌드 | 클래식 릴리스 | 참고 |
---|---|---|---|---|
에이전트 | ✅ | ✅ | ✅ | 파이프라인이 실행되는 필수 리소스를 지정합니다. |
승인 | ✅ | ❌ | ✅ | 배포 단계를 완료하기 전에 필요한 유효성 검사 집합을 정의합니다. |
아티팩트 | ✅ | ✅ | ✅ | 다른 패키지 유형 게시 또는 사용을 지원합니다. |
캐싱 | ✅ | ✅ | ❌ | 한 번의 실행으로 생성된 출력 또는 다운로드한 종속성을 이후 실행 시 다시 사용할 수 있도록 허용하여 빌드 시간을 줄입니다. 미리 보기에서는 Azure Pipelines에서만 사용할 수 있습니다. |
조건 | ✅ | ✅ | ✅ | 작업을 실행하기 전에 충족할 조건을 지정합니다. |
컨테이너 작업 | ✅ | ❌ | ❌ | 컨테이너에서 실행할 작업을 지정합니다. |
요청 | ✅ | ✅ | ✅ | 파이프라인 단계를 실행하기 전에 파이프라인 요구 사항을 충족하는지 확인합니다. 자체 호스팅 에이전트가 필요합니다. |
종속성 | ✅ | ✅ | ✅ | 다음 작업 또는 단계를 실행하기 위해 충족해야 하는 요구 사항을 지정합니다. |
배포 그룹 | ❌ | ❌ | ✅ | 배포 대상 머신의 논리적 집합을 정의합니다. |
배포 그룹 작업 | ❌ | ❌ | ✅ | 배포 그룹에 릴리스할 작업을 지정합니다. |
Deployment jobs(배포 작업) | ✅ | ❌ | ❌ | 배포 단계를 정의합니다. |
환경 | ✅ | ❌ | ❌ | 배포 대상으로 지정된 리소스의 컬렉션을 나타냅니다. Azure Pipelines에서만 사용할 수 있습니다. |
게이트 | ❌ | ❌ | ✅ | 릴리스 단계를 완료하기 전에 외부 상태 신호의 자동 수집 및 평가를 지원합니다. 클래식 릴리스에서만 사용할 수 있습니다. |
작업 | ✅ | ✅ | ✅ | 단계 집합의 실행 순서를 정의합니다. |
Service connections(서비스 연결) | ✅ | ✅ | ✅ | 한 작업(job)의 여러 작업(task)을 실행하는 데 필요한 원격 서비스에 연결하도록 설정합니다. |
서비스 컨테이너 | ✅ | ❌ | ❌ | 컨테이너화된 서비스의 수명 주기를 관리할 수 있습니다. |
스테이지 | ✅ | ❌ | ✅ | 파이프라인 내에 작업을 구성합니다. |
작업 그룹 | ❌ | ✅ | ✅ | 작업 순서를 재사용 가능한 단일 작업으로 캡슐화합니다. YAML을 사용하는 경우 템플릿을 참조하세요. |
작업 | ✅ | ✅ | ✅ | 파이프라인을 구성하는 구성 요소를 정의합니다. |
템플릿 | ✅ | ❌ | ❌ | 재사용 가능한 콘텐츠, 논리 및 매개 변수를 정의합니다. |
트리거 | ✅ | ✅ | ✅ | 파이프라인을 실행하는 이벤트를 정의합니다. |
변수 | ✅ | ✅ | ✅ | 파이프라인에 전달할 데이터로 바꿀 값을 나타냅니다. |
변수 그룹 | ✅ | ✅ | ✅ | 여러 파이프라인에서 제어하고 사용할 수 있는 값을 저장하는 데 사용됩니다. |
TFS 2015~TFS 2018은 클래식 인터페이스만 지원합니다. 다음 표에서는 빌드 또는 릴리스 파이프라인을 정의할 때 사용할 수 있는 파이프라인 기능을 나타냅니다.
기능 | 클래식 빌드 | 클래식 릴리스 | 참고 |
---|---|---|---|
에이전트 | ✅ | ✅ | 파이프라인이 실행되는 필수 리소스를 지정합니다. |
승인 | ❌ | ✅ | 배포 단계를 완료하기 전에 필요한 유효성 검사 집합을 정의합니다. |
아티팩트 | ✅ | ✅ | 다른 패키지 유형 게시 또는 사용을 지원합니다. |
조건 | ✅ | ✅ | 작업을 실행하기 전에 충족할 조건을 지정합니다. |
요청 | ✅ | ✅ | 파이프라인 단계를 실행하기 전에 파이프라인 요구 사항을 충족하는지 확인합니다. 자체 호스팅 에이전트가 필요합니다. |
종속성 | ✅ | ✅ | 다음 작업 또는 단계를 실행하기 위해 충족해야 하는 요구 사항을 지정합니다. |
배포 그룹 | ❌ | ✅ | 배포 대상 머신의 논리적 집합을 정의합니다. |
배포 그룹 작업 | ❌ | ✅ | 배포 그룹에 릴리스할 작업을 지정합니다. |
작업 | ✅ | ✅ | 단계 집합의 실행 순서를 정의합니다. |
Service connections(서비스 연결) | ✅ | ✅ | 한 작업(job)의 여러 작업(task)을 실행하는 데 필요한 원격 서비스에 연결하도록 설정합니다. |
스테이지 | ❌ | ✅ | 파이프라인 내에 작업을 구성합니다. |
작업 그룹 | ✅ | ✅ | 작업 순서를 재사용 가능한 단일 작업으로 캡슐화합니다. YAML을 사용하는 경우 템플릿을 참조하세요. |
작업 | ✅ | ✅ | 파이프라인을 구성하는 구성 요소를 정의합니다. |
트리거 | ✅ | ✅ | 파이프라인을 실행하는 이벤트를 정의합니다. |
변수 | ✅ | ✅ | 파이프라인에 전달할 데이터로 바꿀 값을 나타냅니다. |
변수 그룹 | ✅ | ✅ | 여러 파이프라인에서 제어하고 사용할 수 있는 값을 저장하는 데 사용됩니다. |