Jenkins build

Tool/Jenkins 2017. 2. 15. 23:19

Freestyle project 의 UI 에서 설정한 빌드/배포 등을 pipeline script 로도 작성할 수 있다.

또한 Multibranch Pipeline item 을 사용하여 Jenkinsfile 과 함께 작성할 수도 있다.


하지만 결론부터 얘기하자면... 난 script 로 작성하는 것을 실패했다 ㅜ

빌드까지는 문제 없었지만 Publish Over SSH 플러그인을 사용하여 배포하는 부분을 script 로 변환하는데 실패했다. 내공 부족 ㅜ

일단 Freestyle project UI 만으로 Product/Development 코드 분리와 모듈별 web/api/cms 부분을 빌드하는데 별 문제가 없으니 일단은 그냥 진행하는걸로...;



Build


기존에는 Product/Development 코드를 build.gradle 에 변수 값을(dev/prod)를 바꿔가며 해당 properties 를 가져와 배포했었다.

이부분의 변수를 gradle task 에서 전달하는 것으로 변경했다.


- From build.gradle


environment = 'dev'
//environment = 'prod'
cs


- To build.gradle


def deployType
if (project.hasProperty("deployTypeParam")) {
    deployType = deployTypeParam
else {
    deployType = "dev"
}
environment = deployType
cs


이러면 빌드 파라미터에 deployTypeParam 가 있다면 그 값을 적용할 것이고, 없다면 dev 값으로 설정 파일들을 가져올 것이다.

그래고 product 서버에 배포할 때는 [Build] - [Tasks] 에 다음과 같이 설정한다. (ex. web module)


:web:build -PdeployTypeParam='prod'



Configuration


그리고 Jenkins 기본 설정으로 포트와 타임존을 변경했다.

포트는 기본 8080 을 iptables 에서 80 으로 변경했고,

타임존은 /etc/sysconfig/jenkins 파일에 다음 줄을 추가했다.


JENKINS_JAVA_OPTIONS="-Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Seoul"
cs




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,