[Blog Setup] 3.Travis CI로 Github Pages에 Blog 배포하기.
지난 글에서 Hugo로 Static Page를 생성해 보았다.
이제 다른 사람이 볼 수 있도록 웹에 서비스를 배포할 차례이다
이를 위해서는 다양한 방법이 존재 하며 원하는 방식으로 선택을 하면 된다.
- 낮은 사양의 컴퓨터를 사용하여
개인 서버
를 운영 하면서 서비스 AWS
의S3
를 이용하여 서비스 ( +CloudFront
를 연동)GCP
의CloudStorage
를 이용하여 서비스 ( +Cloud Load Balancing
(+Cloud CDN
)을 연동)Firebase
를 이용하여 서비스Heroku
를 이용하여 서비스Netlify
를 이용하여 서비스Github Pages
를 이용하여 서비스- 그 외…
그 중 비용 생각 안해도 되고 Custom Domain연동에 HTTPS도 지원하는 Github Pages를 사용하도록 하겠다.
(물론 다른 서비스들도 이 블로그 처럼 트래픽도 없고 사이즈도 작다면 대부분 무료 플렌으로 충분히 커버가 가능하다.)
어느 서비스를 통하여 블로그를 올릴지 정했으면, 이제 올려 보도록 하자.
Github Pages
는 간단히 자신의 Github
에 {자신의 username}.github.io
로 repository
를 생성하면 준비가 끝난다.
이제 해당 repository에 배포를 해보자
|
|
이제 http://{username}.github.io/
로 접속하면 올라간 것을 확인 할 수 있을 것이다.
하지만 매번 이렇게 수동으로 생성하고 배포 할 것인가.
그냥 글을 쓰고 올리면 생성하고 배포까지 하도록 Travis CI
를 이용하여 설정해 보자.
먼저 시작하기 전에 어떠한 방법으로 구성을 할 것인지 간단하게 알아보자.
Github Pages는 몇가지 static page를 서비스 하기 위한 방법을 제공한다.
{username}.github.io
로 생성된 repository에서는master
branch그 외
의 repository에서는 설정에 따라master
orgh-pages
branch- master branch의
/docs
폴더로도 설정이 가능하다고 한다.
- master branch의
나는 {username}.github.io
를 사용할 예정이므로 해당 repository의 develop
branch에 hugo project를 올리고 push
가 되면 Travis CI에서 static page generate를 시행한 뒤 master
branch에 commit을 하여 deploy
되도록 구성 할 것이다.
|
|
프로젝트를 repository에 올려두었으니 이제 Travis 설정을 할 차례이다.
Travis는 .travis.yml
로 어떤 작업을 수행 할 것인지를 정의할 수 있다.
|
|
아주 간단하게 이와 같이 정의가 된다.
여기서 나온 환경변수는 Travis CI 사이트에서 설정하는 값이니 넣지 않는다.
특히 GITHUB_TOKEN은 절대로 코드상에 넣지 않는다.
.travis.yml
을 추가 하였으면 commit/push를 해준다.
|
|
이제 Travis CI를 들어가 Github으로 로그인을 해주자.
로그인을 하면 public repository목록이 나오고 그 중에 {username}.github.io
repository를 선택해서 들어간다.
(만일 나오지 않는다면 https://travis-ci.org/{username}/{username}.github.io 로 들어갈 수 있다)
Activate repotository
를 눌러 활성화를 해주자!
활성화가 되었다면 More Options
> Settings
를 들어가서 몇몇 설정을 해주자.
- General에서
- build pushed branches를 켜서 push event가 발생하면 진행되도록 설정
- Environment Variables에
.travis.yml
에서 사용된 변수들을 추가해 준다- USERNAME, GITHUB_TOKEN, NAME, EMAIL
- Github token은 이와 같은 방법으로 생성 할 수 있다
이것으로 설정이 모두 끝났다.
새로운 글을 작성하고 develop branch로 올려보자.
|
|
이제 새로운 글을 작성하고 develop에 push만 한다면 생성과 배포까지 자동으로 이루어 지게 된다.
다음번에는 Custom Domain을 붙이고 HTTPS로 서비스를 하는법을 끄적여 봐야겠다.