travis로 electron빌드
그동안 TistoryEditor는 리눅스 환경에서 모든 빌드를 했었다. 맥에서 리눅스 빌드를 왠지 모르겠지만 계속 에러가 났고 그걸 해결하려는 의지가 좀 부족했던 것 같다. 'electron-builder가 언젠간 쉽게 되도록 해주겠지'라는 안일한 마음도 있었다. 지금은 맥에서 별다른 문제없이 빌드가 된다.
어쨌든 빌드는 여간 귀찮은 일이 아니었다. 리눅스, 맥, 윈도우 모두 빌드를 한 후에 github에 release를 만들고 거기에 파일을 업로드하고 github page에서 버전을 업데이트 해줘야 한다. 자동으로 해주는 프로그램이 있으면 참 좋겠다 생각한 그때 travis가 그걸 해준다는 것을 알았다.
Travis 설정
electron app을 travis에서 배포하도록 하려면 먼저 travis repository에 github token과 같은 환경설정 변수를 등록해줘야 한다. 물론 자신의 github token을 모두에게 까발려도 되지만 그러고 싶은 사람은 없을 것 같다.
oauth app key와 secret을 넣기 위해서 travis encrypt를 사용했는데 자동으로 iv, key를 변수로 넣어준다. 하지만 electron은 어떻게든 파일을 열어볼 수 있기 때문에 완전히 보호하려면 어떻게 해야할 지 모르겠다. 이 값들은 before_install
에서 decrypt를 할때 사용된다.
배포
travis는 수많은 deploy provider를 가지고 있다. 오랜기간 운영하면서 하나하나 늘어난 것이 이렇게 된 것 같다. 난 이 중에서 github releases를 사용한다. releases로 설정하면 다음 버전을 릴리즈할 준비를 하면서 github에 draft release를 만들어두면 travis가 빌드 결과물을 asset으로 업로드해준다. 그러면 난 release 하고 싶을때 publish release 버튼만 눌러주면 되는거다.
물론 이걸 테스트하면서 실제 성공하기까지 많은 시행착오가 있었지만 어쨌든 성공했고 조금은 이 과정이 이해된다. 아직 이해하지 못한 건 travis가 어떻게 결과물을 알고 그걸 업로드하는 것인가다. electron-builder를 이해하고 그걸 이용하는건지 뭔지 모르겠다. 여튼 알아서 해주니 일단 쓰면서 차차 이해해보기로 했다.
이걸 첫번째 사용한 배포는 0.5.8이다. 아직 한번밖에 안했지만 이미 내가 빌드를 하고 업로드를 하지 않아도 된다는 것만으로도 너무 만족스럽다. 얼른 다음 버전 릴리즈하고 싶다.