1. gitlab project hooker로 git에 push하면 jenkins에서 받아오기
일단 new item - freestyle project 생성
소스 코드 관리는 Git으로 바꿔준다. 내 개인 repository url을 적고, 바로 위에서 작성했던 credential을 바꿔준다. 젱질 아래의 branches to build는 어떤 branch가 push되었을 때 build할 것인지에 대한 선택이다.
빌드 유발에서 gitlab webhook 뒤에 있는 url을 복사하자.
그리고 밑으로 내려보면 secret token이 있는데, generate한 후에 이 것도 복사해 두자.
gitlab - settings - webhook으로 들어가서, 바로 위 사진의 url과 secret token을 복사한 후 add webhook하자.
하단의 test - push events를 누르면 위의 Hook executed successfully라는 메시지가 나온다. 즉, gitlab의 hook이 일어날 때 build할 것이라는 것이다.
이후 build의 방식은 gradle을 이용해서 할 것이고
gradle은 앞에서 지정한 gradle 6.9를, task는 clean build를 할 것이다.
#. swapfile 설정
이대로 jenkins build를 하면 먹통이 된다... RAM 크기가 적어서이다. 이를 해결하기 위해 swapfile을 할당하자.
aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/
sudo dd if=/dev/zero of=/swapfile bs=128M count=32
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
sudo vi /etc/fstab
편집기에서 /etc/fstab 파일을 열었다. 해당 파일의 마지막 줄에 아래의 줄을 추가한다.
/swapfile swap swap defaults 0 0
이후 free 명령어로 swap 공간을 볼 수 있다.
나는 VS Code 좌측에 보이는 것으로 /etc/fstab을 열고 저장했는데, 저장 권한이 없다 한다. 그러면
sudo chown -R ec2-user /etc/fstab
을 이용해 권한을 주고 저장하니 잘 된다.
2. project gitlab에 등록
VS Code에서 spring initlaizr를 이용해 아무 프로젝트 하나 만들고(java 버전은 8로 하자. jenkins 내부의 jdk가 8밖에 지원하지 않는다. 폴더 구성은 아래와 같다.
jenkinstest
- src
- main
- test
- gradlew
- gradlew.bat
...
앞서 준비했던 것처럼 hello를 출력해주는 java file하나를 만들자.
/src/main/java/com/example/demo/HelloController.java
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
@RequestMapping("/")
@ResponseBody
public String index() {
return "Hello, VS CODE SPRING!";
}
}
이후 gitlab과 local 소스코드를 연결해 보자.
git config --global user.name "사용자 이름"
git config --global user.email "내 이메일"
git init
git remote add origin git@git.swmgit.org:hyelie/jenkinscompose.git
git add .
git commit -m "initcommit"
git push origin master
gitlab에 내 코드를 push했다.
jenkins에서 내가 push한 spring project를 build하고 있는 것이 보인다.(아래 abort된 것은 swapfile을 까먹고 작성 안 해서 다시 하고 있는 것이다...ㅎㅎ.ㅎ.ㅎ.ㅎ.)
dashboard - project 이름 - 방금 추가된 build - console log를 클릭하면 현재 출력중인 log가 보인다.
build가 아주 잘 되었다!!!