Travis CI, 인용구 빌드를 부탁해
얼마 안 남았다. 커맨드라인으로 인용구 빌드를 할 수 있게 했다. 그 후에 인용구 빌더 컴파일을 자동화했다. 이번에는 인용구 빌더로 인용구 만드는 작업을 자동화할 차례다.
순서는 다음과 같다. 인용구 소스를 다운로드한다. 인용구 빌더 최신 버전을 다운로드한다. 인용구를 빌드한다. 결과물을 커밋하고 푸시한다.
인용구 소스 다운로드는 Travis가 git clone
명령어를 입력해줘서 알아서 해준다.
$ curl -O -L https://github.com/ohyecloudy/tbot-800/releases/download/v0.1.0/quote-builder-800-0.1.0-SNAPSHOT-standalone.jar
최신 버전을 받는 건 나중에 하자. 그냥 경로를 하드코딩해서 넣었다. -L
옵션을 빼니깐 337바이트만 받더라. 아하~ redirect!
빌드는 커맨드라인으로 옵션을 다 빼놔서 쉽게 했다. 이제 빌드 결과물을 푸시할 차례.
$ git clone https://[github access token]@github.com/ohrepos/quotes-repo.git
결과물을 푸시하겠다고 패스워드를 노출할 순 없다. 이럴 때 사용하라고 github이 제공하는 게 있다. 바로 access token [github access token]@github.com
형식의 token을 git에 사용할 수 있다.
$ travis encrypt --add GH_TOKEN=[GITHUB에서 발급한 token]
그렇다고 token을 쌩으로 노출할 수는 없다. Travis가 하는 일을 token만 있으면 똑같이 할 수 있다. 패스워드 대신 사용하기 때문. 이거 훔쳐다가 뭘 하겠어? 어디 오픈소스 커뮤니티에 기여라도 하나? 그래도 연습 삼아 암호화해보자. 찝찝하니 그냥 노출할 순 없잖아. 암호화를 Travis에서 지원한다. --add
옵션을 붙이면 설정 파일에 바로 추가해주니 편하다.
$ git clone https://$GH_TOKEN@github.com/ohrepos/quotes-repo.git
이제 token 노출 없이 $GH_TOKEN
환경변수로 사용할 수 있다.
$ git checkout --orphan gh-pages
master 브랜치와 gh-pages 브랜치를 아무 생각없이 섞어 쓰고 있었다. 하지만 이제 역할을 정해야 한다. master는 소스 브랜치, gh-pages는 결과물 브랜치. 히스토리를 공유할 필요가 없어서 orphan 브랜치를 만들었다.
됐다. 이제 인용구 소스에만 추가하면 Travis가 알아서 빌드하고 배포해준다.