개발자 블로그
Azure DevOps Pipeline - 2. GUI(Classic Editor)로 만들기 본문
✔ 참고 실제 운영환경에서는 GUI로 빌드 파이프라인을 생성하지는 않습니다. 따라서 이 페이지 내용은 그냥 가볍게 살펴보셔도 괜찮습니다. |
Classic Editor vs YAML
- 기본적으로 YAML을 사용해서 빌드 파이프라인을 작성하는걸 권장합니다.
- 이름이 Classic Editor라서 이게 직접 스크립트를 작성하는 것 같지만, GUI 방식이 맞습니다.
- YAML은 직접 스크립트를 작성하는 방식입니다.
- YAML을 사용해야 좀 더 세부적인 내용을 건드릴 수 있어서 YAML 방식을 추천하는 것 같습니다.
일단은 돌려보자!
- 백문이 불여일견! 일단 돌려봅시다.
- 전 단계에서 "New pipeline" 버튼을 클릭하면 아래 화면이 표시됩니다.
- 우리는 일단 GUI 방식으로 구축을 할 것이기 때문에 이미지 맨 밑에 보이는 "Use the classic editor" 항목을 클릭해줍니다.
- 그럼 아래와 같이 소스코드를 가져올 repository를 선택하는 화면으로 넘어갑니다.
- 본 예제에서는 git repository로 Azure Repos를 사용하고 있기 때문에 "Azure Repos Git"을 선택합니다.
- 다른 git 저장소를 사용중이라면, 각자의 환경에 맞는 항목을 선택해주세요.
- 각자의 환경에 맞는 Team project와 Repository 항목을 선택합니다.
- 그리고 그 밑에 항목은 빌드를 수행할 브랜치를 선택하는 항목입니다. 개인적으로는 배포를 위한 브랜치를 별도로 생성해서 사용하고 있습니다. 아래는 그 예시입니다.
- deploy : 유닛 테스트 과정을 수행하고 자동으로 빌드 & 배포
- quick_deploy : 빠른 배포를 위해서 유닛 테스트 단계를 생략하고 빌드 & 배포
- 선택이 모두 끝났으면 "Continue" 버튼을 클릭합니다.
- 템플릿 선택 단계로 넘어왔습니다.
- 이 튜토리얼에서는 안드로이드 앱 빌드를 예시로 사용하기 때문에 "Android"를 선택한 다음 "Apply" 버튼을 클릭합니다.
- 빌드 파이프라인 구축이 모두 끝났습니다. (참 쉽죠?)
- "Name" 항목은 파이프라인을 구분할 수 있는 이름으로 지정하고
- "Agent Specification" 항목은 빌드를 돌릴 OS를 선택합니다. (mac, ubuntu, windows 지원)
- 그 외 gradle wrapper 선택, tasks 입력란 등이 있는데, 일단은 기본값으로 두고 상단에 "Save & queue" 버튼을 클릭합니다.
- 그럼 아래와 같이 Run pipeline 대화상자가 출력됩니다.
- 여러 항목들이 있지만, 이 파이프라인을 실제로 사용할 것은 아니기 때문에 그냥 스킵하고, "Save and run" 버튼을 클릭합니다.
- 그럼 우리가 만든 파이프라인이 아래 이미지와 같이 동작합니다.
- 아래는 모든 작업이 완료 된 뒤의 스크린샷입니다.
- ※ 실제 빌드 결과는 위 스크린샷과 다를 수 있습니다.
이걸로는 부족합니다...
- 사실 위 파이프라인에는 몇 가지 문제가 있습니다.
- 빌드 산출물(APK)를 배포하는 과정이 없고
- 전체 빌드 시간이 20분 가량으로 속도가 매우 느립니다.
- 동시에(병렬로) 실행 가능한 빌드 파이프라인 갯수에는 제한이 있기 때문에 속도가 오래 걸리는 것은 좋지 않습니다.
- 또한, 본 문서에는 생략했지만, Gradle 버전에 따라 아래와 같은 빌드 에러가 발생할 수 있습니다.
- Android Gradle plugin requires Java 11 to run.
- 이제 YAML을 사용해서 파이프라인을 구축하면서 이러한 문제들을 개선해보겠습니다.
'프로그래밍 > DevOps' 카테고리의 다른 글
Azure DevOps Pipeline - 5. git 체크아웃 속도 개선 (0) | 2022.08.30 |
---|---|
Azure DevOps Pipeline - 4. 배포 자동화 (0) | 2022.08.24 |
Azure DevOps Pipeline - 3. YAML로 만들기 (0) | 2022.07.31 |
Azure DevOps Pipeline - 1. 시작하기 (0) | 2022.07.31 |
Comments