hyelie
hyelie
Hyeil Jeong
       
글쓰기    관리    수식입력
  • 전체보기 (495)
    • PS (283)
      • Algorithm (28)
      • PS Log (244)
      • Contest (6)
      • Tips (5)
    • Development (52)
      • Java (14)
      • Spring (23)
      • SQL (2)
      • Node.js (2)
      • Socket.io (3)
      • Study (4)
      • Utils (4)
    • DevOps (36)
      • Git (5)
      • Docker (4)
      • Kubernetes (2)
      • GCP (3)
      • Environment Set Up (8)
      • Tutorial (12)
      • Figma (2)
    • CS (74)
      • OOP (7)
      • OS (24)
      • DB (2)
      • Network (24)
      • Architecture (0)
      • Security (2)
      • Software Design (0)
      • Parallel Computing (15)
    • Project (15)
      • Project N2T (5)
      • Project ASG (0)
      • Project Meerkat (1)
      • Model Checking (7)
      • Ideas (2)
    • 내가 하고싶은 것! (34)
      • Plan (16)
      • Software Maestro (10)
      • 취준 (8)
hELLO · Designed By 정상우.
hyelie

hyelie

EC2   Docker   Jenkins   Spring   Gitlab 자동 빌드 - 3. gitlab project hooker 연동
DevOps/Tutorial

EC2 Docker Jenkins Spring Gitlab 자동 빌드 - 3. gitlab project hooker 연동

1. gitlab project hooker로 git에 push하면 jenkins에서 받아오기

add new item - freestyle project

일단 new item - freestyle project 생성

 

소스 코드 관리 - Git

소스 코드 관리는 Git으로 바꿔준다. 내 개인 repository url을 적고, 바로 위에서 작성했던 credential을 바꿔준다. 젱질 아래의 branches to build는 어떤 branch가 push되었을 때 build할 것인지에 대한 선택이다.

 

gitlab webhook

빌드 유발에서 gitlab webhook 뒤에 있는 url을 복사하자.

 

secret token

그리고 밑으로 내려보면 secret token이 있는데, generate한 후에 이 것도 복사해 두자.

 

gitlab - webhook

gitlab - settings - webhook으로 들어가서, 바로 위 사진의 url과 secret token을 복사한 후 add webhook하자.

 

webhook push test

하단의 test - push events를 누르면 위의 Hook executed successfully라는 메시지가 나온다. 즉, gitlab의 hook이 일어날 때 build할 것이라는 것이다.

 

build - invoke gradle script

이후 build의 방식은 gradle을 이용해서 할 것이고

 

clean build

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했다.

 

와! coomit된 것이 자동으로 build되고 있다.

jenkins에서 내가 push한 spring project를 build하고 있는 것이 보인다.(아래 abort된 것은 swapfile을 까먹고 작성 안 해서 다시 하고 있는 것이다...ㅎㅎ.ㅎ.ㅎ.ㅎ.)

 

console log

dashboard - project 이름 - 방금 추가된 build - console log를 클릭하면 현재 출력중인 log가 보인다.

 

build successful.

build가 아주 잘 되었다!!!

'DevOps > Tutorial' 카테고리의 다른 글

EC2 Docker Jenkins Spring Gitlab 자동 빌드 - 5. jenkins pipeline - JUnit + SonarQube  (0) 2022.10.05
EC2 Docker Jenkins Spring Gitlab 자동 빌드 - 4. docker image push  (0) 2022.10.04
EC2 Docker Jenkins Spring Gitlab 자동 빌드 - 2. Docker, Jenkins, gitlab 연동  (0) 2022.10.04
EC2 Docker Jenkins Spring Gitlab 자동 빌드 - 1. EC2 instance 생성 및 VS Code SSH 접속  (0) 2022.10.04
Docker + (Spring Boot + VS Code) 준비 단계  (0) 2022.06.21
    hyelie
    hyelie

    티스토리툴바