Bamboo CI/CD(부분 빌드)
- 1 1. 사전 확인
- 2 2. 빌드
- 2.1 2.1. 빌드 프로젝트 생성
- 2.2 2.2. 빌드 플랜 구성
- 2.2.1 2.2.1. 빌드 디렉토리 구성
- 2.2.2 2.2.2. Task 구성
- 2.2.3 2.2.3. 추가 설정
- 3 3. 배포
- 3.1 3.1. 배포 프로젝트 생성
- 3.2 3.2. 배포 환경 구성
- 3.2.1 3.2.1. Tasks 구성
- 3.2.2 3.2.2. 추가 설정
- 4 4. 결과
- 4.1 4.1. 빌드 및 배포 수행
- 4.1.1 4.1.1. 빌드 결과
- 4.1.2 4.1.2. 배포 결과
- 4.1 4.1. 빌드 및 배포 수행
1. 사전 확인
1.1. 구현 환경
Virtual Machine | Oracle VM Virtual Box 6.0 |
---|---|
OS | CentOS 7 |
JAVA |
|
Bamboo |
|
Bitbucket |
|
Maven |
|
Apache Tomcat |
|
1.2. 가상 머신 사양
메모리 | 2 GB |
---|---|
프로세서 | 1 개 |
용량 | 8 GB |
Bamboo server, Bitbucket server, Build server, Deploy server
총 네 개의 가상 머신을 이용하였으며, 사양은 모두 동일합니다.
1.3. Remote agent 준비
각 빌드와 배포 서버를 위하여 Remote agent가 2개 필요합니다.
1.3.1 agent capabilities
1.4. Repository 준비 및 연결
1.4.1. BItbucket Repository
Bitbucket Repository 준비하기를 참고하여 Repository를 생성합니다.
1.4.2. Bamboo Linked Repository
Linked Repository 추가하기를 참고하여, 생성된 Bitbucket의 Repository를 Bamboo와 연결합니다.
2. 빌드
2.1. 빌드 프로젝트 생성
참고
빌드 프로젝트 생성하기를 참고하여 위와 같이 빌드 프로젝트를 생성합니다.
2.2. 빌드 플랜 구성
2.2.1. 빌드 디렉토리 구성
${bamboo.agentWorkingDirectory} : bamboo agent working directory
+ build
+ build.xml : ant build script
+ pom.xml : maven build script
+ target
+ temp : 빌드 대상
+ src
+ exSjt : 테스트를 위한 프로젝트
~/nexus
+ classes
+ lib : project library
2.2.2. Task 구성
플랜의 Tasks는 위와 같이 구성되어 있습니다.
Source Code Checkout
Repository를 checkout 합니다.
빌드 디렉토리 구성상, repository를
src
밑에 내려받으므로 Checkout Directory를src
로 설정합니다.
Script
빌드 디렉토리를 구성합니다.
Maven 3.x
Maven을 이용하여 설정된 대로 빌드를 수행합니다.
빌드 디렉토리 구성상,
pom.xml
이 build 디렉토리 밑에 존재하므로 Working subdirectory를 위와 같이 설정하였습니다.The build will produce test results는 반드시 체크를 해제합니다.
테스트를 수행하지 않으므로 에러가 발생합니다.
Pom.xml & Build.xml
2.2.3. 추가 설정
빌드를 수행할 Agent 특정
capability를 이용하여 빌드를 수행할 agent를 특정합니다.
Artifacts 설정
위와 같이 빌드 디렉토리 구성에 맞게 Artifacts를 설정합니다.
Location (
build/target
) : Artifact가 존재하는 위치입니다.Copy pattern(
*.war
) : Artifact를 특정할 수 있는 pattern을 설정합니다.
3. 배포
3.1. 배포 프로젝트 생성
배포 프로젝트 생성하기를 참고하여 기존에 구성해둔 플랜과 연결된 배포 프로젝트를 생성합니다.
3.2. 배포 환경 구성
배포 환경의 구성 요약은 위와 같습니다.
3.2.1. Tasks 구성
배포 환경의 tasks는 위와 같이 구성되어 있습니다.
Clean working directory task
working directory를 비웁니다.
Artifact download
Artifact name에 설정된 Artifact를 다운로드합니다.
Script
다운로드한 Artifact를 Tomcat에 배포합니다.
3.2.2. 추가 설정
배포를 수행할 Agent 특정
capability를 이용하여 배포가 수행될 Agent를 특정합니다.
Trigger
빌드 수행 후, 자동으로 배포가 수행되도록 Trigger를 설정합니다.
변수 설정
Deployment projects > exDeploy > Edit project > Variables 클릭
변수 설정
그림과 같이 변수를 설정합니다.
이렇게 설정된 변수는
${bamboo.tomcat.context}
,${bamboo.tomcat.home}
같은 식으로 이용할 수 있습니다.