Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines를 사용하여 Git 리포지토리에서 샘플 애플리케이션을 빌드하는 단계별 가이드입니다. 이 가이드에서는 YAML 파이프라인 편집기를 사용하여 구성된 YAML 파이프라인을 사용합니다. 클래식 파이프라인을 대신 사용하려면 클래식 파이프라인 정의를 참조하세요. TFVC 사용에 대한 지침은 빌드 TFVC 리포지토리를 참조 하세요.
왼쪽 메뉴에서 파이프라인을 선택하여 파이프라인 방문 페이지로 이동하여 파이프라인을 보고 관리할 수 있습니다.
파이프라인 방문 페이지에서 파이프라인 및 파이프라인 실행을 보고, 파이프라인을 만들고 가져오고, 보안을 관리하고, 파이프라인으로 드릴다운하고 세부 정보를 실행할 수 있습니다.
최근에 실행된 파이프라인(기본 보기)을 보려면 [최근 항목]을 선택하거나 모든 파이프라인을 보려면 [모두]를 선택합니다.
파이프라인을 선택하여 해당 파이프라인 을 관리하고 실행을 봅니다. 마지막 실행의 빌드 번호를 선택하여 해당 빌드의 결과를 보거나, 분기 이름을 선택하여 해당 실행에 대한 분기를 보거나, 상황에 맞는 메뉴를 선택하여 파이프라인을 실행하고 다른 관리 작업을 수행합니다.
실행을 선택하여 모든 파이프라인 실행을 봅니다. 필요에 따라 표시된 실행을 필터링할 수 있습니다.
파이프라인 실행을 선택하여 해당 실행에 대한 정보를 봅니다.
상황에 맞는 메뉴에서 실행을 유지 또는 삭제하도록 선택할 수 있습니다. 실행 보존에 대한 자세한 내용은 빌드 및 릴리스 보존 정책을 참조 하세요.
파이프라인 세부 정보 보기
파이프라인에 대한 세부 정보 페이지를 사용하면 해당 파이프라인을 보고 관리할 수 있습니다.
편집을 선택하여 파이프라인을 편집합니다. 자세한 내용은 YAML 파이프라인 편집기를 참조 하세요. 파이프라인을 호스트하는 리포지토리에서 직접 azure-pipelines.yml 파일을 수정하여 파이프라인을 편집할 수도 있습니다.
파이프라인 실행 세부 정보 보기
파이프라인 실행 요약에서 실행 중일 때와 완료된 경우 모두 실행 상태를 볼 수 있습니다.
요약 창에서 작업 및 단계 세부 정보를 보고, 아티팩트 다운로드하고, 연결된 커밋, 테스트 결과 및 작업 항목으로 이동할 수 있습니다.
작업 및 스테이지
작업 창에는 스테이지 및 작업의 상태에 대한 개요가 표시됩니다. 이 창에는 파이프라인에 단계 및 작업 또는 작업만 있는지 여부에 따라 여러 탭이 있을 수 있습니다. 이 예제에서 파이프라인에는 빌드 및 배포라는 두 단계가 있습니다. 단계 또는 작업 창에서 작업을 선택하여 파이프라인 단계로 드릴다운할 수 있습니다.
작업을 선택하여 해당 작업의 단계를 확인합니다.
단계 보기에서 각 단계의 상태 및 세부 정보를 검토할 수 있습니다. 추가 작업 에서 타임스탬프를 전환하거나 파이프라인의 모든 단계의 원시 로그를 볼 수 있습니다.
파이프라인 취소 및 다시 실행
파이프라인이 실행 중인 경우 취소를 선택하여 취소할 수 있습니다. 실행이 완료되면 새로 실행을 선택하여 파이프라인을 다시 실행할 수 있습니다.
파이프라인 실행 더 많은 작업 메뉴
추가 작업 메뉴에서 로그를 다운로드하고, 태그를 추가하고, 파이프라인을 편집하고, 실행을 삭제하고, 실행에 대한 보존을 구성할 수 있습니다.
참고
실행이 유지되면 실행을 삭제할 수 없습니다. 삭제가 표시되지 않으면 실행 유지 중지를 선택한 다음 실행을 삭제합니다. 삭제 및 보존 릴리스 보기가 모두 표시되면 하나 이상의 구성된 보존 정책이 실행에 계속 적용됩니다. 보존 릴리스 보기를 선택하고 정책을 삭제한 다음(선택한 실행에 대한 정책만 제거됨), 실행을 삭제합니다.
리포지토리에 상태 배지 추가
많은 개발자는 리포지토리에 상태 배지를 표시하여 코드 품질을 높게 유지하고 있음을 보여주고 싶어합니다.
상태 배지를 클립보드에 복사하려면 다음을 수행합니다.
Azure Pipelines에서 파이프라인 페이지로 이동하여 파이프라인 목록을 봅니다. 이전 섹션에서 만든 파이프라인을 선택합니다.
를 선택한 다음 상태 배지를 선택합니다.
상태 배지를 선택합니다.
샘플 Markdown 섹션에서 샘플 Markdown을 복사합니다.
이제 클립보드에 배지 Markdown을 사용하여 GitHub에서 다음 단계를 수행합니다.
파일 목록으로 이동하여 .를 선택합니다 Readme.md. 편집하려면 연필 아이콘을 선택합니다.
파일의 시작 부분에 상태 배지 Markdown을 붙여넣습니다.
분기로 변경 내용을 커밋합니다 main .
상태 배지는 리포지토리 설명에 표시됩니다.
프라이빗 프로젝트에 대한 배지에 대한 익명 액세스를 구성하려면 다음을 수행합니다.
페이지의 왼쪽 아래 모서리에 있는 프로젝트 설정으로 이동합니다.
파이프라인 아래에서 설정 탭 열기
일반에서 배지 슬라이더에 대한 익명 액세스 사용 안 함 토글
참고
프라이빗 프로젝트에서도 익명 배지 액세스는 기본적으로 사용하도록 설정됩니다. 익명 배지 액세스를 사용하도록 설정하면 조직 외부의 사용자가 배지 상태 API를 통해 프로젝트 이름, 분기 이름, 작업 이름 및 빌드 상태와 같은 정보를 쿼리할 수 있습니다.
이 리포지토리에서 파일을 변경 Readme.md 했기 때문에 Azure Pipelines는 리포지토리의 루트에 있는 파일의 구성에 azure-pipelines.yml 따라 코드를 자동으로 빌드합니다. Azure Pipelines로 돌아가서 새 실행이 나타나는지 확인합니다. 편집할 때마다 Azure Pipelines는 새 실행을 시작합니다.
Azure DevOps Server 2019의 클래식 편집기를 사용하여 "Hello world"를 인쇄하는 빌드 및 릴리스를 만드는 방법을 보여 줍니다.
프로젝트가 비어 있으면 리포지토리에 코드를 추가하는 데 도움이 되는 화면이 표시됩니다. 파일을 사용하여 리포지토리를 초기화하려면 맨 아래 선택 항목을 선택합니다.readme
리포지토리에 스크립트 추가
인쇄하는 PowerShell 스크립트를 만듭니다 Hello world.
Azure Repos로 이동합니다.
파일을 추가합니다.
대화 상자에서 새 파일의 이름을 지정하고 만듭니다.
HelloWorld.ps1
이 스크립트를 복사하여 붙여넣습니다.
Write-Host "Hello world"
파일을 커밋 (저장)합니다.
이 자습서에서는 CI/CD에 중점을 두므로 코드 파트를 단순하게 유지합니다. 웹 브라우저에서 직접 Azure Repos Git 리포지토리에서 작업 중입니다.
실제 앱 빌드 및 배포를 시작할 준비가 되면 Azure Pipelines CI 빌드에서 다양한 버전 제어 클라이언트 및 서비스를 사용할 수 있습니다. 자세히 알아보기.
빌드 파이프라인 만들기
"Hello world"를 인쇄하는 빌드 파이프라인을 만듭니다.
Azure Pipelines를 선택하면 자동으로 빌드 페이지로 이동됩니다.
새 파이프라인 만들기.
새 Azure DevOps 사용자의 경우 YAML 파이프라인 만들기 환경으로 자동으로 연결됩니다. 클래식 편집기에 가서 이 가이드를 완료하려면 새 YAML 파이프라인 만들기 환경에 대한 미리 보기 기능을 해제해야 합니다.
원본, 프로젝트, 리포지토리 및 기본 분기가 스크립트를 만든 위치와 일치하는지 확인합니다.
빈 작업으로 시작합니다.
왼쪽에서 파이프라인을 선택하고 사용하려는 이름을 지정합니다. 에이전트 풀의 경우 호스트된 VS2017을 선택합니다.
왼쪽에서 더하기 기호(+)를 선택하여 작업 1에 작업을 추가합니다. 오른쪽에서 유틸리티 범주를 선택하고 목록에서 PowerShell 작업을 선택한 다음 추가를 선택합니다.
왼쪽에서 새 PowerShell 스크립트 작업을 선택합니다.
스크립트 경로 인수의 경우 단추를 선택하여 리포지토리를 찾아보고 만든 스크립트를 선택합니다.
저장 및 큐를 선택한 다음, 저장을 선택합니다.
빌드 파이프라인은 자동화된 빌드 파이프라인을 정의하는 엔터티입니다. 빌드 파이프라인에서는 각각 빌드에서 단계를 수행하는 작업 집합을 작성합니다. 작업 카탈로그는 시작할 수 있는 다양한 작업 집합을 제공합니다. 빌드 파이프라인에 PowerShell 또는 셸 스크립트를 추가할 수도 있습니다.
빌드에서 아티팩트 게시
일반적인 빌드는 릴리스의 다양한 단계에 배포할 수 있는 아티팩트를 생성합니다. 간단한 방법으로 기능을 보여 주려면 스크립트를 아티팩트로 게시하기만 하면 됩니다.
작업 탭에서 더하기 기호(+)를 선택하여 작업 1에 작업을 추가합니다.
유틸리티 범주를 선택하고 빌드 아티팩트 게시 작업을 선택한 다음 추가를 선택합니다.
게시할 경로: 단추를 선택하여 만든 스크립트를 찾아 선택합니다.
아티팩트 이름: 입력 drop합니다.
아티팩트 게시 위치: Azure Artifacts/TFS를 선택합니다.
아티팩트가 빌드에서 생성하려는 파일입니다. 아티팩트 수는 팀이 앱을 테스트하거나 배포하는 데 필요한 거의 모든 항목일 수 있습니다. 예를 들어 실행 파일과 .EXE .DLL 있습니다. C# 또는 C++ .NET Windows 앱의 PDB 기호 파일입니다.
아티팩트를 생성할 수 있도록 패턴 일치를 사용하여 복사와 같은 도구와 아티팩트를 게시하기 전에 수집할 수 있는 스테이징 디렉터리를 제공합니다. Azure Pipelines의 아티팩트 참조
CI(연속 통합) 사용
트리거 탭을 선택합니다.
연속 통합을 사용하도록 설정합니다.
빌드 파이프라인의 연속 통합 트리거는 코드 변경이 커밋할 때마다 시스템에서 새 빌드를 자동으로 큐에 대기해야 임을 나타냅니다. 트리거를 보다 일반적이거나 더 구체적으로 만들고 빌드를 예약할 수도 있습니다(예: 야간). 빌드 트리거를 참조 하세요.
빌드 저장 및 큐
빌드를 수동으로 저장 및 큐에 저장하고 빌드 파이프라인을 테스트합니다.
저장 및 큐를 선택한 다음 저장 및 큐를 선택합니다.
대화 상자에서 저장 및 큐를 다시 한 번 선택합니다.
Microsoft 호스팅 에이전트에서 새 빌드를 큐에 대기합니다.
페이지 맨 위에 새 빌드에 대한 링크가 표시됩니다.
새 빌드가 발생하는 것을 볼 링크를 선택합니다. 에이전트가 할당되면 빌드의 라이브 로그를 보기 시작합니다. PowerShell 스크립트는 빌드의 일부로 실행되고 "Hello world"는 콘솔에 인쇄됩니다.
빌드 요약으로 이동합니다. 빌드의 아티팩트 탭에서 스크립트가 아티팩트로 게시됩니다.
일부 변수를 추가하고 스크립트에 변경 내용 커밋
파이프라인을 좀 더 흥미롭게 만들기 위해 스크립트에 몇 가지 빌드 변수를 전달합니다. 그런 다음, 스크립트에 변경 내용을 커밋하고 CI 파이프라인이 자동으로 실행되어 변경 내용의 유효성을 검사하는 것을 확인합니다.
이제 변경 결과를 볼 수 있습니다. Azure Pipelines로 이동하여 대기 중을 선택합니다. 큐에 대기 중 또는 실행 중인 섹션에서 커밋한 변경 내용에 의해 빌드가 자동으로 트리거됩니다.
만들어진 새 빌드를 선택하고 해당 로그를 봅니다.
코드를 변경한 사람은 인사말 메시지에 자신의 이름이 인쇄되어 있습니다. 또한 이것이 CI 빌드였다는 것을 인쇄한 것을 볼 수 있습니다.
이 단계에서 빌드 변수의 개념을 소개했습니다. 시스템에서 자동으로 미리 정의되고 초기화되는 변수의 값을 인쇄했습니다. 사용자 지정 변수를 정의하고 태스크에 대한 인수 또는 스크립트 내의 환경 변수로 사용할 수도 있습니다. 변수에 대한 자세한 내용은 빌드 변수를 참조 하세요.
빌드 파이프라인이 있습니다. 후속 단계
팀에서 체크 인한 코드를 자동으로 빌드하고 유효성을 검사하는 빌드 파이프라인을 만들었습니다. 이 시점에서 다음 섹션을 계속 진행하여 릴리스 파이프라인에 대해 알아볼 수 있습니다. 또는 원하는 경우 미리 건너뛰어 앱에 대한 빌드 파이프라인을 만들 수 있습니다.
릴리스 파이프라인 만들기
두 단계로 스크립트를 실행하는 프로세스를 정의합니다.
파이프라인 탭으로 이동한 다음 릴리스를 선택합니다.
새 파이프라인을 만드는 작업을 선택합니다. 릴리스 파이프라인이 이미 만들어진 경우 더하기 기호(+)를 선택한 다음 릴리스 파이프라인 만들기를 선택합니다.
각 릴리스의 진행률을 추적하여 모든 단계에 배포되었는지 확인할 수 있습니다. 각 릴리스의 일부인 커밋, 연결된 작업 항목 및 릴리스 파이프라인에 추가한 테스트 실행 결과를 추적할 수 있습니다.
코드를 변경하고 프로덕션에 자동으로 배포되는 것을 지켜봅니다.
스크립트를 한 번 더 변경하겠습니다. 이번에는 자동으로 빌드된 다음 프로덕션 단계에 배포됩니다.
코드 허브, 파일 탭으로 이동하여 HelloWorld.ps1 파일을 편집하고 다음과 같이 변경합니다.
Param(
[string]$greeter,
[string]$trigger
)
Write-Host "Hello world" from $greeter
Write-Host Trigger: $trigger
Write-Host "Now that you've got CI/CD, you can automatically deploy your app every time your team checks in code."
스크립트를 커밋 (저장)합니다.
빌드 탭을 선택하여 대기된 빌드를 확인하고 실행합니다.
빌드가 완료되면 릴리스 탭을 선택하고 새 릴리스를 연 다음 로그로 이동합니다.
새 코드는 QA 단계 및 프로덕션 단계에서 자동으로 배포됩니다.
대부분의 경우 일부 테스트 및 승인이 적용된 후에만 프로덕션 배포가 수행되도록 릴리스 파이프라인을 편집하려고 할 수 있습니다. 승인 및 게이트 개요를 참조하세요.
다음 단계
Azure에서 첫 번째 파이프라인을 만드는 방법을 알아보았습니다. 이제 선택한 언어로 파이프라인을 구성하는 방법에 대해 자세히 알아봅니다.
이름: 이 이름을 사용하거나 이 이름으로 시작하는 파이프라인으로 결과를 제한합니다. 예: FabCI 또는 Fab*.
조직 또는 조직: Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=ORG_URL기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수입니다. 예: https://dev.azure.com/MyOrganizationName/.
project 또는 p: 프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=NAME_OR_ID기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수입니다.
repository-type: 결과를 이 리포지토리 형식과 연결된 파이프라인으로 제한합니다. 이 인수와 함께 리포지토리 인수를 전달해야 합니다. 허용되는 값: bitbucket, git, github, githubenterprise, svn, tfsgit, tfsversioncontrol
az pipelines delete --id
[--detect {false, true}]
[--org]
[--project]
[--yes]
매개 변수
id: (필수) 파이프라인의 ID입니다.
detect: 조직을 자동으로 검색합니다. 허용되는 값: false, true
조직 또는 조직: Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=ORG_URL기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수입니다. 예: https://dev.azure.com/MyOrganizationName/.
project 또는 p: 프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=NAME_OR_ID기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수입니다.
예 또는 y: 확인 메시지를 표시하지 않습니다.
예시
다음 예제에서는 테이블 형식의 파이프라인을 나열한 다음 ID가 6인 파이프라인을 삭제합니다. 이 예제에서는 다음과 같은 기본 구성을 사용합니다. az devops configure --defaults organization=https://dev.azure.com/fabrikam-tailspin project=FabrikamFiber
az pipelines list --output table
ID Path Name Status Default Queue
---- ------ ------------- -------- ------------------
6 \ FabrikamFiber enabled Hosted Ubuntu 1604
az pipelines delete --id 6
Are you sure you want to delete this pipeline? (y/n): y
Pipeline 6 was deleted successfully.