인프런 Dowon Lee님의 Jenkins를 이용한 CI/CD Pipeline 구축 강의를 수강하며 작성한 내용입니다.
Jenkins에서 Item 이란 빌드, 컴파일, 배포 등 작업의 최소단위를 뜻한다.
먼저 젠킨스에서 새로운 Item이라는 항목을 클릭해준다.
이름을 작성해주고 아래의 여러가지 템플릿중에 Freestyle project를 클릭해주고 ok 클릭!
그럼 여러가지 설정 항목들이 보이지만 여기서는 Build Steps만 건드려 볼 것이다.
Build Steps에서 Excute shell을 선택해준다.
지금 만드는 아이템을 실행하게 되면 어떤 shell script가 실행될 수 있도록 처리하는 과정이다.
우리는 지금 젠킨스를 도커에 설치를 했고 도커는 기본적으로 OS를 Linux로 사용하고 있기 때문에 지금 우리가 쓰고 있는 젠킨스를 리눅스에 설치되어있다고 볼 수 있다.
즉, 여기서 사용하는 쉘 스크립트의 환경은 리눅스가 될 것이다.
리눅스 명령어로 "Welcome to my first project using Jenkins" 메세지가 출력될 수 있도록 작성했다.
그리고 Apply 버튼을 누르고 저장버튼을 누른다.
Dashboard로 돌아오면 이렇게 방금 만든 My-First-project 항목이 보이는데 아직 빌드를 안했기 때문에 최근 성공, 실패 등의 항목이 보이지 않음을 알 수 있다.
My-First-project를 클릭해서 이동하면 왼쪽에 여러 선택항목이 보이는데 "지금 빌드"를 클릭해 보자.
그럼 빌드가 진행되고 완료되면 하단에 이렇게 표시가 될 것이다.
초록색 체크 아이콘은 빌드가 성공적으로 되었다는 표시가 된다.(실패시엔 빨간색)
체크 아이콘을 클릭하면 세부적인 콘솔 메세지를 확인할 수 있다. 클릭해보자.
Console Output을 통해 확인할 수 있는데 이를 통해
workspace는 어디에 위치해 있는지, 위에서 추가했던 echo 문장등을 확인할 수 있다.
무엇보다도 Finished: SUCCESS 문구를 통해 빌드가 성공적이었다라는 것을 알 수 있다.
이번엔 좀 다르게 수정해볼려고 한다.
다시 돌아와서 "구성" 을 클릭해 보자.
에코 문구를 작성했던 곳에 이번엔 JDK 버전을 확인하기 위해 javac -version
이라는 명령어를 입력하자.
그 후 똑같이 Apply -> 저장.
그후 대시보드로 돌아와 보면 위처럼 최근 빌드에 성공했던 시간 을 확인할 수 있다.
참고로 W는 weather로 빌드의 성공여부를 날씨 아이콘을 통해 알려준다.
지금은 성공했기 때문에 "맑음" 표시를 볼 수 있다.
여기서도 바로 빌드를 할 수도 있다.
빌드 후 콘솔창을 확인해 보자!
역시 위해서 입력했던 javac -version
을 통해 JDK 버전이 확인되었음을 알 수 있다.
이번엔 workspace를 확인해 보자.
현재 실행중인 도커 컨테이너에 접속하기 위해서 cmd창을 열고
docker exec -it {컨테이너 아이디(이름)} {사용할 쉘 스크립트}
명령어를 입력해준다.
-it
옵션은 -i
와 -t
옵션이 합쳐진 것이다.
-i
는 표준 입출력
-t
는 TTY로 터미널을 열어 해당 컨테이너에 터미널 접속을 의미한다.
계정명@컨테이너 아이디 식으로 표시되어 있음을 알 수 있다.
참고로 리숙스 명령어인 ls -al
을 입력하여 도커에서 실행중인 젠킨스 내부의 파일 목록들을 확인해볼 수 있다.
그럼 이제 workspace로 이동해기 위해 cd /var/jenkins_home/workspace
까지 입력해보자
이동이 되었다. 그리고 ls -al
을 입력해서 파일 목록들을 확인해 보자.
그러면 만들었던 My-First-project 폴더가 보인다.
이동 후 My-First-project 폴더에 뭐가 있는지 확인해보자.
cd My-First-project
ls -al
아무것도 없다. 왜 일까???
이유는 우리가 만들었던 아이템은 패키징을 하지 않았다.
즉, echo 문구나 JDK 버전을 확인하기 위한 명령어들은 확인지 되지만 빌드를 실핼후 어떠한 형태로 패키징. 즉, 압축을 한다던지 어떤 파일에 빌드된 결과물을 만들지 않았고 단순히 스크립트만 실행하고 있는 상태이다.
패키징해서 파일이 생성되는 것은 다음에 해보자!!