스프링 배치 Job Runner를 조사하던 중에 Jenkins에서 batch프로젝트를 gradle빌드해 보았습니다.
Jenkins 환경
- Amazon Linux2
- AMI ID : ami-0f27d081df46f326c
- AMI 이름 : amzn2-ami-hvm-2.0.20210303.0-x86_64-gp2
- Jenkins
- version : Jenkins 2.284
인증정보 등록
Github 아이디/패스워드 인증 방법
Jenkins에서 Repository관련 작업이 가능하도록 Github에서
Personal access tokens
를 발행합니다. ( Settings > Developer settings > Personal access tokens )Manage Jenkins > Manage Credentials > domain에 있는 global을 클릭합니다.
Kind는
Username with password
를 선택하고 패스워드란에Personal access tokens
값을 입력하고 인증정보를 추가합니다.
Github SSH 인증 방법
Gradle, JDK설정
- 프로젝트에서 사용할 Gradle과 JDK를
Manage Jenkins > System Configuration > Global Tool Configuration
에서 설정합니다. 한가지 버전만 설정한 경우 각 JOB에서 디폴트로 설정됩니다. 복수개 버전이 등록된 경우에는 JOB설정시 버전선택이 가능합니다.
Job등록
New Item > Freestyle project
을 선택해서 Job을 등록합니다. github access tokens으로 인증할 경우에는 Repository URL에git@github.com:bokyung-kang/batch-test
을 입력하고 Credentials에서 github인증을 등록한 Username을 선택합니다.ssh인증할 경우에는 Repository URL에
git@github.com:bokyung-kang/batch-test
을 입력하고 Credentials에서 ssh을 등록한 Username을 선택합니다.build script
chmod +x gradlew # test를 실행안하려고 저는 assemble을 실행했습니다 ./gradlew assemble # deploy-test에 jar복사 mkdir -p $JENKINS_HOME/workspace/deploy-test cp $WORKSPACE/build/libs/*.jar $JENKINS_HOME/workspace/deploy-test/.
Gradle Build
- 빌드를 실행합니다.
[batch-test] $ /bin/sh -xe /tmp/jenkins568576160326820555.sh
+ chmod +x gradlew
+ ./gradlew assemble
Starting a Gradle Daemon (subsequent builds will be faster)
> Task :compileKotlin
> Task :compileJava NO-SOURCE
> Task :processResources
> Task :classes
> Task :bootJarMainClassName
> Task :bootJar
> Task :inspectClassesForKotlinIC
> Task :jar SKIPPED
> Task :assemble
BUILD SUCCESSFUL in 33s
5 actionable tasks: 5 executed
+ mkdir -p /var/lib/jenkins/workspace/deploy-test
+ cp /var/lib/jenkins/workspace/batch-test/build/libs/batch-0.0.1-SNAPSHOT.jar /var/lib/jenkins/workspace/deploy-test/.
Finished: SUCCESS