
우선 윈도우에 VirtualBox로 Ubuntu를 띄워서 사용했다.
앞선 포스팅에서 사용했던 스프링부트 프로젝트가 GitHUb에 올라가 있어서 이 프로젝트를 Ubuntu에 띄우고 CI/CD 파이프라인을 설계해보자.
Ubuntu 서버에는 192.168.250.110 IP를 할당해줬다.
# jdk 17 wget으로 설치
> sudo apt install openjdk-17-jdk
java --version 으로 확인

# yum repo에 jenkins 안정화 버전 추가
> sudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
# rpm에 jenkins 추가
> echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
# jenkins 설치
> sudo apt-get update
> sudo apt-get install fontconfig
> sudo apt-get install jenkins
# 정상적으로 설치되었는지 확인
> systemctl status jenkins
2020년 부터 jenkins의 key가 변경되었다고 한다.
Package 'jenkins' has no installation candidate위와 같은 에러가 뜬다면 그 이전에 작성된 블로그를 찾아봐야 할 듯하다.
만약 정상적으로 Jenkins가 설치 되었다면 http://{ip주소}:8080으로 접속해본다.

위 화면이 나온다면 성공이다.
사진에 나와있는 /var/lib/jenkins/secrets/initialAdminPassword 경로에 초기 비밀번호가 생성되어 있다.
# 초기비밀번호 확인
> sudo cat /var/lib/jenkins/secrets/initialAdminPassword
출력된 비밀번호를 위 화면의 입력창에 붙여넣고 continue

Install suggested plugins을 선택해주면 아래 화면으로 이동되며 플러그인들이 설치된다.

설치가 완료되면 아래 화면으로 이동되며 관리자 계정을 생성할 수 있다.


Save and Finish

Start using Jenkins

설치 완료!

좌측 메뉴에서 새로운 Item을 클릭한다.

아이템명을 입력한 후 Freestyle project 선택 > OK

설명 입력

Git을 선택하고 repository 주소를 입력해준다.
https://github.com/{계정ID/조직ID}/{프로젝트명}.git
그리고 Credentials 하단에 있는 Add 버튼 클릭 > Jenkins 클릭한다.

GitHub 계정을 추가해준다.
username은 GitHub 게정 아이디, Password에는 GitHub에서 발급받은 토큰, 마지막으로 ID는 계정정보를 저장할 이름이다.

계정정보가 등록 되었으면 방금 등록한 계정정보를 선택해주고, CI/CD의 대상이 될 Branch Specifier 도 입력해준다.

마지막으로 Build Steps를 추가하기 전, 새 탭을 켜서 jenkins를 접속한다.

좌측 메뉴에서 Jenkins 관리 선택 > Tools 선택

최하단의 Gradle installations에서 Add Gradle 선택 (만약 다른 빌드도구를 사용했다면 다른 빌드도구를 추가한다.)

이름 입력 후 원하는 버전 선택 > Save

다시 Item 구성으로 돌아가서 Build Steps > Execute Shell

# clean build 명령어
chmod +x gradlew
./gradlew clean build --exclude-task test
방금 생성한 Gradle 선택 후 실행할 Gradle 명령어 입력 후 저장

지금 빌드 클릭하여 빌드 시작.

진행중인 빌드 > Console Output 으로 가면 실시간 로그를 확인할 수 있다.

빌드 성공.

다시한번 프로젝트 구성으로 이동한다.

최하단에 Execute Shell을 하나 추가하고 실행할 코드를 입력한다.
# jar 파일 원하는 경로로 복사
cp ./build/libs/*SNAPSHOT.jar ~/app/deploy/practice.jar
# jar 파일 실행
java -jar ~/app/deploy/practice.jar &

실행 성공

http 요청 테스트 결과.
git을 사용하기 위해서는 Jenkins를 실행중인 서버에 git이 설치되어 있어야한다.