Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Ship cli tools for cross- platform w/Github + wecker 2014/09/26@HDE MTS TANABE Ken-ichi
Slide 2
Slide 2 text
動機 ● OS X, Linux, Windows向けにcliツールを配布 したい ● 開発者以外にも使ってほしい ○ APIを叩いて何か処理をしたり ○ 簡単なサーバを起動してデータをやりとりしたり ● いつものようにCIしつつビルド、リリースまで自動 化したい
Slide 3
Slide 3 text
道具 ● Go ○ クロスプラットフォーム (OS X, Linux, Windows, BSD) ○ 単一バイナリ ○ 豊富な標準ライブラリ (syscallからnet/httpまで) ● Github ○ ソースコードリポジトリ ● Wercker ○ ビルド環境を自由に作成できるCI as a Service ○ goxcを使い、クロスコンパイル ○ 成果物をGithub Releasesへデプロイ
Slide 4
Slide 4 text
goxc ● goxcを使うと以下を自動的に実行 ○ 各プラットフォーム向けツールチェインのビルド (必要なら) ○ クロスコンパイル ○ プラットフォーム毎にアーカイブ ● goxcももちろんGoで書かれていてダウンロードする だけで動作する goxc -tasks='xc archive' -bc 'linux,amd64,386 darwin,amd64,386'
Slide 5
Slide 5 text
wercker (workerと読む) ● Dockerのコンテナのように ビルド環境をboxとして自 由に構築、共有できる ● 成果物のデプロイプロセス も定義できる ● サービスはまだベータの 位置付け
Slide 6
Slide 6 text
wercker (build) ● YAMLでビルドプ ロセスを定義 ● go {get, build, test, fmt} ● 最後にgoxcでビ ルド
Slide 7
Slide 7 text
wercker (one-click deployment) herokuなどのPaaS にもデプロイ可能
Slide 8
Slide 8 text
wercker (deploy) ● UIから手動デプロイ ● 特定ブランチへの pushに応じて自動 デプロイ
Slide 9
Slide 9 text
参考文献 ● “pecoのバイナリ配布の話” http://lestrrat.ldblog.jp/archives/39736492.html ● “Wercker で Go のプロジェクトをクロスコンパイルし、 Github にリリースする” http://motemen.hatenablog. com/entry/2014/06/27/xcompile-go-and-release-to- github-with-wercker ● nabeken/docker-cleaner (上をまねて作った) https://github.com/nabeken/docker-cleaner