59. Eclipse와 Azure Repos 및 Azure Pipelines 통합하기 1편
<참조> https://azuredevopslabs.com/labs/vstsextend/eclipse/
|
개요
Azure DevOps 서비스는 팀이 모든 플랫폼을 대상으로 하는 모든 앱에 대해 지속적인 통합, 테스트 및 배포를 통해 애플리케이션 개발 수명주기를 현대화하고 아이디어에서 배포로 이동할 수 있도록 지원한다.
Azure DevOps 서비스는 Visual Studio, Eclipse, IntelliJ, Android Studio, XCode 등을 포함한 모든 개발 도구와 함께 작동하여 개발자가 Azure DevOps를 쉽게 사용할 수 있도록 한다.
이 랩에서는 Azure DevOps를 사용하고 Eclipse를 사용하는 Java 개발자를 위한 일반적인 종단간 워크 플로를 안내한다. 운전자가 여행 내역에 액세스하고 수집된 요금을 볼 수 있는 포털을 제공하는 MyShuttle이라는 가상 고객을 사용할 것이다. 이것은 Apache Tomcat에서 실행되고 MySQL을 데이터베이스로 사용하는 JSP/Servlet 기술에 구축된 Java 애플리케이션이다. Ubuntu 데스크톱 스테이션에서 개발하고 Azure에 앱을 배포한다.
이 랩에서 다루는 것
이 랩에서는 접근 방식을 모두 다루며 다음 태스크가 수행된다.
- 샘플 데이터 및 사용자로 Azure DevOps 조직 팀 프로젝트 프로비전
- Eclipse 용 Azure DevOps 플러그인인 Eclipse Photon 및 Team Explorer Everywhere 설치
- Azure Toolkit for Eclipse 설치 및 탐색
- Azure Build 파이프라인을 설정하여 코드를 빌드 및 테스트한 다음 Azure Container Registry로 푸시한다.
- Azure Web App을 설정하고 Azure Web App에 이미지를 배포하도록 Azure 릴리즈파이프 라인 구성한다.
실습 완료 예상 시간 : 1 시간
시작하기 전에
1. 이 실습 따라하기 시작에 앞서 시작하기 페이지를 참조한다.
2. Windows 시스템에 JDK, Eclipse를 설치하고 구성해야한다.
3. Azure DevOps 조직에 Docker Integration 확장을 설치하고 사용하도록 설정해야한다.
4. Azure DevOps 데모 생성기로 팀 프로젝트를 프로비전해야한다. 여기서 MyShuttle 템플릿이 사용된다.
실습1: 이클립스 설정하기
Azure DevOps 조직 프로젝트를 설정 했으므로 이제 Eclipse를 설정한다.
1. Eclipse Java IDE를 연다. Eclipse를 처음 실행할 때 작업영역을 선택하라는 메시지가 나타날 것이다. 이클립스를 기본값으로 사용하고 다시 확인하지 않으려면 폴더를 지정하고 "Use this as the default and do not ask again" 확인란을 누른다.
우리는 마이크로소프트의 이클립스를 위한 공식 플러그인 Team Explorer Everywhere (TEE)를 설치하여 Azure DevOps와 Azure DevOps 서버를 이클립스 기반 IDE와 연결할 것이다. Linux, Mac OS X 및 Windows에서 지원되며 Eclipse 4.2에서 4.6을 기반으로하는 IDE와 호환된다. 우리는 또한 Azure Toolkit for Eclipse를 설치할 것이다. Azure Toolkit for Eclipse는 이클립스 개발 환경에서 클라우드 애플리케이션을 쉽게 만들고 개발하고 테스트하고 Azure에 배포할 수 있는 템플릿과 기능을 제공한다.
2. Eclipse가 시작된 후 Help | Install New Software를 설치하여 설치 대화 상자 페이지를 가져온다.
3. 새 저장소를 추가하려면 Add 버튼을 선택한다 이름으로 Team Explorer Everywhere를 추가하고 위치로 http://dl.microsoft.com/eclipse를 지정하고 Add 버튼을 클릭한다.
4.설치 대화 상자의 기능 목록에서 Team Explorer Everywhere 플러그인 및 Azure Toolkit for Java에 해당하는 확인란을 선택한다.
주의: 이 옵션이 표시되지 않으면 "Work with:"의 풀다운 메뉴를 사용하여 목록에서 방금 입력한 업데이트 사이트 URL을 찾아 선택한 다음 위에서 언급한 플러그인 옆의 확인란을 선택한다.
5. Next를 선택하여 마법사를 따르고 약관에 동의하고 설치를 완료한다.
6. Eclipse를 다시 시작하여 변경 사항을 적용 할 수 있는 팝업을 수신 할 수 있다. 지금 Restart Now를 선택한다. Eclipse가 다시 시작되면 Windows > Show View 표시로 이동하여 Other…를 선택한다.
7. Team Explorer를 검색하고 Team Explorer 보기를 선택한 다음 Open을 클릭한다.
Plug-in "com.microsoft.tfs.client.common.ui" was unable to instantiate class 에러 발생
위 에러가 발생 시여기를 참고하여 해결한다.
8. Team Explorer 보기에서 Connect to a Team Foundation Server or Team Services account할 링크를 클릭한 다음 Azure DevOps 조직(https://your-account-name.visualstudio.com)의 이름을 입력하고 Next 버튼을 누른다.
9. "Connect to a Team Foundation Server or Team Services account" 옆 "Servers…" 버튼을 누른다. "Add/Remove Team Foundation Server" 패널에서 "Add…"를 누르고 "Add Team Foundation Server" 패널에 Azure DevOps 조직의 이름(https://{your-account-name}.visualstudio.com)을 입력한다. 그런 다음 Enter Credentials를 누른다.
(원문의 지침대로 진행이 안되어 PAT 방식을 통한 인증을 수행한다.)
10. Personal access token (all scope)를 선택하고 Azure DevOps에서 생성한 전체 권한의 PAT를 붙여넣고 OK를 클릭한다.
11. Eclipse로 돌아가서 장치 로그인 창에서 확인 버튼을 누른다. 이제 Azure DevOps 조직이 연결할 서버 목록에 표시되어야한다. 현재 창을 닫으려면 "Close"버튼을 누른 다음 "Next" 버튼을 눌러 서버에 연결한다.
실습2: Eclipse를 사용하여 Azure DevOps Services Git repo에서 MyShuttle 복제
다음으로 Azure Repos Git repository를 로컬 Git 리포지토리에 복제하고 코드를 Eclipse의 프로젝트로 가져온다.
1. Team Explorer 패널에서 Git Repositories를 선택한다. 그러면 프로젝트의 모든 Git 저장소가 나열된다.
2. 팀 프로젝트에서 MyShuttle 리포지토리를 마우스 오른쪽 단추로 클릭하고 Import Repository를 선택한다.
상위 디렉토리 및 repo 폴더 이름의 기본값을 계속 사용하고 Next 버튼을 누른다. 그러면 저장소가 VM에 복제된다.
3. 저장소에 저장된 Eclipse 프로젝트가 없다. 이제 마법사를 닫을 수 있다. Eclipse 프로젝트 대신 Maven 프로젝트로 프로젝트를 가져온다. "Import Projects from Team Foundation Server" 창에서 Cancel 버튼을 클릭한다.
4. 코드가 지역 리포에 복제되었다. 우리는 그 곳으로부터 불러올 수 있다. 이클립스에서 File -> Import…를 선택하여 Import window를 연다. 가져오기 창에서 메이븐 폴더를 확장하고 Existing Maven projects를 선택한다. 그런 다음 Next 단추를 누른다.
루트 디렉토리의 경우 "C:\Users{your-user-name}\git\MyShuttle"의 루트 디렉토리 경로에서 찾아보기 버튼을 클릭하거나 입력한다. pom.xml 파일은 Maven 프로젝트를 나타내는 프로젝트 아래에 나타나야 한다. 또한 Add project(s) to working set 옆의 확인란을 클릭하여 작업 세트에 myshuttle을 추가하여 패키지 탐색기 창에서 별도의 프로젝트로 액세스할 수 있다. 그런 다음 Finish를 클릭한다.
5. Eclipse 상단의 툴바에서 Window -> Show View -> Package Explorer를 클릭하여 Eclipse의 패키지 탐색기에서 myshuttle 프로젝트를 본다 (패키지 탐색기 보기를 보려면 다른 창을 최소화해야 할 수 있음).
실습3: Docker 이미지를 빌드하기위한 Azure Pipeline 만들기
이 태스크에서는 이미지를 빌드하고 Azure Container Registry에 푸시할 Azure Pipelines 빌드 정의를 구성한다.
1. 별도의 탭에서 Azure Portal 연다.
2. + Create a resource를 선택하고 Container Registry를 검색한다. Create를 선택한다. Create Container Registry 대화 상자에서 서비스 이름을 입력하고 새 리소스 그룹을 만들고 위치를 선택하고 Review + Create를 선택한다.
ACR 생성 후 Access keys에서 Admin user를 활성화한다.
3. Azure DevOps 조직으로 돌아가 Pipelines –> Pipelines 허브를 클릭하고 MyShuttleDockerBuild 빌드를 편집한다. 이 빌드 정의에는 pom.xml 파일을 빌드하는 maven 태스크가 포함되어 있다. Maven 태스크에서 다음 매개 변수 값을 설정한다.
Parameter | Value | Notes |
Options | -DskipITs -settings ./maven/settings.xml | 빌드 중 통합 테스트를 건너 뛴다. |
Code Coverage Tool | JaCoCo | 커버리지 도구로 JaCoCo를 선택한다. |
Source Files Directory | src/main | JaCoCo의 소스 파일 디렉토리를 설정한다. |
4. 스테이징 디렉터리에 아티팩트를 복사하고 Azure DevOps (또는 파일 공유)에 게시하는 Copy 및 Publish 태스크가 있다.
5. 다음으로 Docker Compose 태스크를 사용하여 이미지를 빌드하고 게시한다. 2개의 Docker compose 태스크인 Build an image 및 Push an image의 설정은 다음과 같다.
Parameter | Value | Notes |
Container Registry Type | Azure Container Registry | 이전에 만든 Azure Container Registry에 연결하기위한 것이다. |
Azure Subscription | Your Azure subscription | 레지스트리가 포함된 구독을 승인해야한다. |
Azure Container Registry | Your registry | 이전에 만든 Azure Container 레지스트리를 선택해야한다. |
Image Name | Web:$(Build.BuildNumber) | 빌드의 각 인스턴스에 대해 고유한 태그를 설정한다. |
Include Latest Tag | Check (set to true) | 이 빌드에서 생성 된 이미지에 latest 태그를 추가한다. |
6. 이 빌드를 저장하고 대기열에 넣으려면 "Save and Queue"버튼을 클릭한다. Hosted Ubuntu 1604 에이전트를 사용하고 있는지 확인한다.
7. 빌드는 이전에 만든 Azure Container Registry로 이미지를 푸시한다.
8. Eclipse 내의 Azure Explorer 보기에서 이미지가 제대로 푸시되었는지 확인할 수 있다. Windows > Show View를 선택하고 Other…를 선택한다. Azure Explorer를 검색하고 Open을 선택한 후 클릭한다. 마우스 오른쪽 버튼을 클릭하여 Azure에 Sign in한 다음 Azure Container Registry를 새로 고친다. 마우스 오른쪽 버튼을 클릭하고 Open ACR Explorer를 선택한다 빌드 번호로 태그가 지정된 이미지를 확인한다.
2편에서 계속