티스토리 뷰

golang

Golang: Github - Travis-CI - Heroku

주먹불끈 2019. 2. 7. 17:59

개요

 

CI, CD 라고 한다. Continuous Integration / Continuous Delivery (또는 Deployment)

Lint, Test 등도 포함되겠지만 여기서는 씸플하게 최소한 만을 적용해본다.

 

1) Local PC 에서 golang 웹서버를 만들고, 추가 Feature 구현할때마다 Github push 하면

2) Github 연결된 Travis-CI 에서 자동으로 빌드가 되고, 결과를 있으며 CI

3) 다시 Github 연결된 Heroku app 으로 자동 배포된다. CD

 

, Local PC 에서 구현한 수정사항을 Github push 하기만 하면,

빌드가 되고 - 더해서 Lint, Test 까지 하게 있으며 - 실제 서비스까지 업데이트 되는 것이다.

 

참고 링크: https://www.sauru.so/blog/travis-ci/

참고 링크2: https://www.melvinvivas.com/configuring-travis-ci-with-go-projects/

 

Travis CI

 

다시 , 우리가 만들려는 프로세스를 정리해본다.

 

1) Local PC 에서 변경

2) Github push

3) Github Travis CI trigger (연결은 미리 설정해둠)

4) Travis CI 자동 build

5) 설정에 따라 heroku deploy (and / or) Slack notification

 

구현한 코드는 아래와 같다.

- Dependency 관리를 위한 Go modules 이전 포스팅 참고: https://jusths.tistory.com/68

- Github Repository: https://github.com/nicewook/go_modules_test

 


 

 

Github Travis CI 연결하기

 

1) https://travis-ci.com 에서 github.com 계정으로 로그인 (= Github 연결)

2) 프로젝트의 상위 디렉토리에 아래와 같이 .travis.yml 파일 생성 git add, commit 다음, push 하면 끝이다.

- Travis-CI 에게 golang 쓰며 버전은 1.11 라고 알려주는 것이 전부이다.

 


 

 

git push 하면 무슨 일이 생기는가

 

먼저 Github repository 에서 commit 보면 아래와 같이 (물론 Build 성공시에만)  초록색 체크가 보이며,

이를 클릭해보니 Travis-CI Build Passed 되었다고 알려준다.

 


 


 

Travis-CI 사이트에서 빌드 로그를 수도 있다.

 

- 좌측에는 최근의 빌드 결과들이 나오고

- 우상단에는 빌드 정보들, 우하단에는 빌드 로그정보들이 보인다.

 


 

 

빌드의 결과를 Github Repository README.md 표시해주는 방법은

 

- Travis-CI build/passing 버튼을 클릭해서 나오는 팝업에서

- 번째 칸의 Markdown 선택하여 나오는, 번째 칸의 내용을

- Github README.md 붙여넣으면 된다.

 


 

아래와 같이 최종 빌드 결과가 표시된다.

 


 

 

Heroku

 

참고 링크: https://medium.com/@felipeluizsoares/automatically-deploy-with-travis-ci-and-heroku-ddba1361647f

 

1) 로컬에서 수정 Github push Travis-CI 빌드하여 build / passing 하였다.

2) 이제 build / passing 버전을 Heroku 에서 서비스되고 있는 App 에서 자동 배포되게 하고 싶다.

 

 

설정하기

 

1) 이미 Heroku ( https://www.heroku.com ) 에는 가입되어 있다고 때에

2) https://dashboard.heroku.com/apps 페이지에서 New >> Create new app 선택한다.

 


 

3) App 이름을 만들어준다. 여기서는 go-modules-test 라고 만들었다.

- 나중에 서비스 되는 url 주소가 된다. https://go-modules-test.herokuapp.com/

- underscore (_) 없으며 dash (-) 가능하다.

 

 


 

 

4) 이제 디테일한 설정을 해줘야 하는데 없다.

 

- Github 이용하여 deploy 하겠다고 선택하고

- Github 에서 원하는 특정 repository 특정 branch 선택

- 마지막으로  특정 branch 에서 Automatic deploy 하겠다고 해주면 된다.

이때 Wait for CI to pass before deploy 체크해서, Travis-CI build / passing 경우만 deploy 하도록 해준다.

 

 


 

 

 

마지막으로

 

실제로 소스를 조금 고쳐서 git push 하여 CI / CD 이루어지는지 확인해보자.

- response message (여기서는 Hello justHS!) 고쳐보는게 가장 쉬울 하다.

 

 

진짜 마지막으로

 

Local PC repository Heroku 연결해두면 log 보거나 다양한 작업이 용이하다.

 

1) heroku  cli 에서 앱이랑 연결하기

- 아래의 go-modules-test 대신 연결을 원하는 app 이름을 넣어주면 된다.

 

heroku git:remote -a go-modules-test

 

2) 로그를 보려면 아래 명령어

 

heroku logs --tail


반응형

'golang' 카테고리의 다른 글

Slack slash command + Golang server  (0) 2019.02.12
time.Sleep, time.Duration  (0) 2019.02.11
Go Modules  (0) 2019.02.07
Golang: io.ReadWriter 의 content 를 날려먹지 않는 법  (1) 2019.01.28
git bash / vim / vim-plug / vim-go - in Windows 10  (0) 2019.01.17
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함