티스토리 뷰

Photo by Clay Banks on Unsplash

 

CI/CD 알지만 CI/CD 실무에서 써본 적은 없다. GitHub Action 이용해서 Heroku deploy 되도록 해보았다.

 

1. Local PC에서 코드를 수정하여

2. GitHub repo git push 하면

3. GitHub Action 설정한대로 Heroku 자동 deploy 하게 하는 것이다.

 

, 실제로 Heroku 서비스하고 있다면, 단지 GitHub repo push 해주는 만으로 변경사항이 서비스에 반영이 되는 것이다아래 링크를 참고하여 최소한의 구현과 경로로 전체 구현흐름을 잡아보겠다. 자세한 내용과 선택사항은 링크의 내용을 참고한다.

 

아래 참고링크에서 제공하는 action 사용하였지만 상세한 동작 매커니즘까지는 들여다보지 않았다.

참고링크: https://github.com/marketplace/actions/deploy-to-heroku

 

Heroku secret key 구하기

 

Heroku에는 가입되어 있어야 한다.

먼저 Heroku 사이트에 로그인하여 나의 API Key 확인하자. 이게 있어야 GitHub에서 나의 Heroku 접근할 있다.

Account Settings 아래에 가보면 API Key 알아낼 있다. 복사해두자.

 

Go HTTP server 만들고 GitHub 올리기

 

"Hello" 리턴하는 HTTP server 만들고 GitHub 올린다.

내가 하는 프로세스를 요약하면 다음과 같다.

 

Git

1. 프로젝트 폴더를 만들고 git init

2. .gitignore 파일을 설정한 다음, 코딩

 

Go Modules and run

1. Go Modules 초기화

go mod init <project name> 준다. ex) $ go mod init github-to-heroku

2. Local PC에서 테스트 해본다.

$ go run .

3. git add git commit

 

GitHub repo

1. GitHub Cli 이용해서 GitHub remote repo 만들기

2. git push

 

생성된 GitHub Repo: https://github.com/nicewook/github-to-heroku

 

참고: GitHub CLI 사용한 GitHub Repo 생성 push

 

GitHub Action에게 알려주는 명령

 

참고 링크 https://github.com/marketplace/actions/deploy-to-heroku

에서는 .github/workflows/main.yml 파일을 만들고 아래와 같이 작성하라고 가이드 되어 있다.

GitHub 에서 제공하는 탬플릿은 아래와 같다.

GitHub repo 가서 Actions >> New workflow 선택하면 나온다

프로젝트를 위한 .yml 만들기

내용을 참고하여 아래와 같이 만들어 보았다.

 

1. .yml 파일의 파일명은 중요치 않다. 마찬가지로 .yml 파일 줄의 name 역시 임의로 해도 된다. 나는 myAction.yml, myAction 이라고 각각 이름붙였다.

2. runs-on 어떤 OS위에서 동작할지를 정한 것이다.ubuntu-lateset. 이후에 GitHub Action step 따라 작업을 수행한다. 

3. 코드를 checkout 하고 빌드환경을 설정한 마침내 빌드한다.

- bin 폴더에 github-to-heroku라는 이름의 실행파일이 생길 것이다.

- 빌드된 실행파일을 Heroku 에서 실행하라고 알려줘야 한다. Procfile 역할인데 아래에 따로 것이다.

4. 그리고 heroku-deploy 정보이다.

- heroku_api_key

    - GitHub repo에서 HEROKU_API_KEY 라고 하여 Heroku 계정의 key 추가한다.

    - HEROKU_API_KEY 임의의 이름을 있다.

    - GitHub Cli 이용할 수도 있다.

- heroku_app_name

    - Heroku 내에 생성된 모든 app들의 이름과 겹치면 안된다.

- heroku_email

    - 나의 email 정보를 적는다.

 

 

Procfile

.yml 파일이 GitHub Action 위한거라면 Procfile Heroku 위한 것이다.

무얼 실행할지만 말해주면 된다.

 

프로젝트 폴더 root Procfile 만들고 안에 web: bin/github-to-heroku 라고 써주면 된다.

 

 

가자!

이제 git push 해주면 Heroku app 생성되고 자동으로 실행된다. GitHub repo 가서 Actions 탭으로 가보면 진행사항을 확인할 있다.

 

 

성공후 Heroku 가보면 github-to-heroku app 생성되어 있는 것이 보인다.

 

오른쪽의 Open app 눌러보면 브라우저가 실행된다.

 

Local 코드를 수정하여 Bye 바꾸어 push 해보았더니 제대로 CI/CD 되며 브라우저로 접근시 바로 적용된 것을 확인하였다.

 

삽질들

 

아닌 삽질들을 여럿 하였다.

 

1. Procfile에서 web: bin/github-to-heroku 라고 써야 하는데 역슬래시 \ 써서 web: bin\github-to-heroku 라고 써버렸다.

2. HEROKU_API_KEY HEROKU_SECRET_KEY 혼용해서 썼다

 

반응형
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
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
글 보관함