이번에는 Freestyle project가 아닌 Pipeline으로 만들어 보려고 한다. (결과가 좀 더 보기 좋게 나온다고함) pipeline { agent any //등록한 jdk를 활성화 tools { jdk 'openjdk-17-jdk' } //스테이지로 구성됨 각각의 단계 stages { //준비 단계 stage('Prepare') { steps { git branch: 'master', url: 'https://github.com/sh970901/dockerDB' } post { //성공했을 경우 success { sh 'echo "Successfully Cloned Repository"' } //실패했을 경우 failure { sh 'echo "Fail Cloned Repository"' }..
jenkins_1에서 도커를 설치하여 HOST OS의 도커명령어를 사용할 수 있도록 한다. jenkins_1 bash 도커 설치 apt-get update -y apt-get install -y ca-certificates curl gnupg lsb-release mkdir -p /etc/apt/keyrings rm /etc/apt/keyrings/docker.gpg curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] ht..
아주 간단한 스프링 부트 프로젝트를 배포하고 jenkins를 활용하여 자동화까지 진행 하려한다. https://github.com/sh970901/dockerDB 특별한 기능 없이 /getList로 접속하면 회원의 정보를 출력하는 용도이다. 현재 젠킨스가 실행되고 있는 컨테이너에서 확인해본결과 jdk는 11.0 버전이다. 젠킨스는 자바 기반이기 때문에 기본적으로 jdk는 설치가 되어있다. 따라서 jdk 17버전을 설치한다. JDK 17 설치 방법 1 : jenkins_1 컨테이너에 접속해서 설치 docker exec -it jenkins_1 bash apt-get update apt-get install openjdk-17-jdk -y JDK 17 설치 방법 2 : HOST OS에서 컨테이너로 명령을 전..
pubilc 저장소의 경우 1. 깃허브 Repository => setting => Webhooks => Add webhook => PayLoad URL에 ngrok로 생성한 IP를 적는다. https:// [ip]/github-webhook/ 추가 => add webhooks 2. 이전에 젠킨스에서 프로젝트 생성하면서 Git Repository에 url을 잘 추가해주었다면 이제 커밋을 하면 신호가 젠킨스에 날라간다. 3. 내용을 수정하고 커밋을 진행하고 Webhooks를 확인해보면 Response가 200인 것(잘 보냈음)을 확인 할 수 있다. 젠킨스에 잘 도착했는지 확인하고 싶으면 꼭 Configuration에 GitHub hook trigger를 체크해주는 것을 잊지 말자. 4. 다시 커밋내용을 푸..
개인 PC에서 커밋이 발생하면 github가 개인 PC => VirtualBox => Docker => jenkins에 신호가 도달 해야한다. 하지만 공인 IP가 존재하지 않아 불가능하다. 그래서 필요한게 ngrok이다. ngrok를 쓰면 개인 PC에 도메인 부여(절대적 주소)가 가능하다. ngrok 설치 및 실행 https://ngrok.com 설치 후 계정 가입을 진행하고 다운로드 받는다. 다운받은 위치에서 ngrok을 실행하기 위해서는 맨 처음 Configuration File에 토큰을 추가하는 작업을 진행 해주어야 한다. ngrok http 8081로 정상적으로 실행되는지 확인하자. Forwarding에 적혀있는 주소가 나의 IP가 된다. IP에 접속해보면 결과를 확인할 수 있다. 현재 접근에 실..
젠킨스(Jenkins)란? 모든 언어의 조합과 소스 코드 레포지토리에 대한 지속적인 통합(Continuous integration, CI)과 지속적 배포(continuous delivery, CD) 환경을 구축하기 위한 도구다. 빌드, 테스트, 배포 프로세스를 자동화하여 소프트웨어 품질과 개발 생산성을 높일 수 있다. 젠킨스와 같은 CI툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방법이 일반적이었는데, 젠킨스는 서브버전, Git과 같은 버전 관리 시스템과 연동해서 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동하도록 도와주게 되어 편의성이 증가되었다. 이러한 기능을 수행하는 젠킨스는 컴파일 오류를 검출하고, 자동화 테스트를 수행하며, 정적 코드 분석으로 인한 코딩 규약 준수 여..