반응형
Jenkinsfile 에서 변수사용시 차이점
${env.propertie-name} 과 ${properties}의 차이는 env. 으로 시작되는 파일은 Jenkins 에서 변수로 생성해둔 파일을 사용할때 사용한다.
이프로젝트는 매개변수가 있습니다 를 체크한다 이후 String Parameter.. 등등 선택하여 매개변수명을 등록한다.
이후 위에서 언급한바와같이 ${env.매개변수명} 을 입력하여 사용한다.
또한 Jenkins 에서는 사용할수 있는 환경변수들이 있는데 그중 하나가 BUILD_NUMBER 이다.
빌드넘버는 여기 히스토리에 표시되는 값과 동일하다.
해당값을 이용하여 Jenkins의 execute shell 탭에서 활용 할 수도 있다.
이렇게 하면 Jenkins 빌드넘버로 jar 파일을 관리하며 다운로드 할 수 있다.
해당 부분을 다시 gradle parameter로 보내어 빌드 번호로 RELEASE를 관리 할 수도 있다.
-PbuildNumber 를 사용하여 mudule을 gradle 로 빌드할때 젠킨스에서 gradle 로 parameter를 전달할수있다.
-P는 옵션 buildNumber는 property(parameter name) 이다.
gradle clean bootJar --parallel --build-cache -PbuildNumber=${ECS_SERVICE}\#${BUILD_NUMBER}
gradle 변수 전달 방법 옵션
- -D : jvm 단위에 제공되는 변수전달방법
- -P : project 단위에 전달되는 변수전달법 , gradle 속성용
- build.gralde file 에서 jar packaging 시에 다음과 같이 project.getProperty 로 빌드 번호를 가져올수 있다.
// gralde 빌드 명령어 예시 // gradle build bootJar -PbuildNumber=101 // build.gradle file String buildNumber if(project.hasProperty('buildNumber')){ buildNumber = project.getProperty('buildNumber') filesMatching("**/*.properties") { expand( buildNumber: project.getProperty('buildNumber') ) } archiveFileName = "${archiveBaseName.get()}-${buildNumber}.${archiveExtension.get()}" } else { archiveFileName = "${archiveBaseName.get()}-.${archiveExtension.get()}" } doLast { if(project.hasProperty('buildNumber')){ println "번호 : " + buildNumber } }
- ${archiveBaseName.get()}
- 프로젝트모듈 이름
- ${archiveExtension.get()}
- 확장자명
- project.getProperty('buildNumber')
- gradle build 에서 -P 옵션으로 준 값
- build.gralde file 에서 jar packaging 시에 다음과 같이 project.getProperty 로 빌드 번호를 가져올수 있다.
gradle build bootJar -PtestUser=Sangkil project.getProperty(”testUser”)
결과
8:49:51 PM: Executing 'bootJar -x test -PbuildNumber=10'...
> Task :asciidoctor UP-TO-DATE
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :bootJarMainClassName UP-TO-DATE
> Task :bootJar
번호 : 10
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.8/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 2s
5 actionable tasks: 1 executed, 4 up-to-date
8:49:53 PM: Execution finished 'bootJar -x test -PbuildNumber=10'.
이렇게 함으로 Jenkins 에서 사용중인 변수들을 gradle 에서 받아 사용 할 수 있다.
반응형
'Auto Build(CI SCM GIT) > Jenkins' 카테고리의 다른 글
Jenkins 자원부족에 의한 교착 상태 Waiting for next available executor (0) | 2024.05.04 |
---|---|
Jenkins 자원부족에 의한 교착 상태 Waiting for next available executor (0) | 2024.04.25 |
jenkins pipeline 구성 - sshPublisher (0) | 2023.03.27 |
Jenkins SSH 원격지 배포 (0) | 2016.10.19 |