간단하게 GitHub에 push 되면 자동 빌드하도록 project를 구성해보겠습니다.
New Item 클릭
이 프로젝트가 build node에서만 실행될 수 있도록 설정해줍니다.
연결할 github의 repository 주소를 입력해줍니다. 브랜치는 기본 Master로 설정해주었습니다. 브랜치 안만들거라,,
Build Trigger는 GitHub hook trigger for GITScm polling 를 선택! 말 그대로 GitHub 의 hook trigger 를 받으면 빌드를 하겠다는 뜻임
지금은 build툴을 사용하지 않을것이므로 build는 따로 설정해주지 않았습니다.
까지 설정하고 save~
repository에 새 commit을 올려서 제대로 반영이 되는지 확인해봅시다.
만든 프로젝트를 run 해봅니다.
빌드 히스토리를 보면 맞게 빌드됨을 확인할 수 있습니다.
첫번째 프로젝트에서 pull받아온 코드를 컴파일하고 빌드하는 프로젝트를 만들어보겠습니다.
아까와 같이 new items를 클릭하여 새 프로젝트를 만듭니다. 대상을 아까처럼 build agent로 설정해주고, git은 사용하지 않을 것이므로 선택하지 않습니다.
빌드는 쉘을 사용해서 다음과 같은 스크립트로 컴파일->빌드하려고 합니다.
빌드에 사용하기 위한 gcc와 docker를 Agent instance에 설치합니다.
sudo apt-get install docker.io
sudo apt-get install gcc
설치 후 두번째 프로젝트를 빌드합니다.
성공 😎
Agent Instance의 public IP주소에서 접근하여 맞게 빌드됐는지 확인해봅시당 .
지금은 수동으로 Build Now를 클릭해서 빌드하였는데, 첫번째 프로젝트가 문제없이 빌드되면 두번째 프로젝트가 수행되도록 해보겠습니다.
첫번째 프로젝트의 configure를 수정합시다.
빌드 후 다른 프로젝트를 빌드하도록 설정!
Github에서 WebHook을 추가합니다.
Jenkins가 돌고있는 인스턴스의 publicIP:8080으로 주소를 설정해줍니다.
repo에 새 commit을 하여 자동화되었는지 확인해봅시다.!
첫번째 pull-code가 실행되고, 두번째인 compile-build를 트리거했다는 로그를 볼 수 있습니다.
compile-build의 로그에서 pull-code에 의해 실행되었고, 설정한 스크립트대로 수행되었음을 볼 수 있습니다.