Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ship cli tools for cross-platform with Github + wecker
Search
TANABE Ken-ichi
September 26, 2014
Technology
0
1.2k
Ship cli tools for cross-platform with Github + wecker
TANABE Ken-ichi
September 26, 2014
Tweet
Share
More Decks by TANABE Ken-ichi
See All by TANABE Ken-ichi
AAA: An ACME Agent for AWS environment
nabeken
0
3k
Introduction to Terraform
nabeken
0
2.3k
The Twelve-Factor Apps
nabeken
0
46
Go and License
nabeken
8
10k
Other Decks in Technology
See All in Technology
Databricksを活用してDELISH KITCHENのレシピレコメンドを開発した話
furu8
0
240
〜小さく始めて大きく育てる〜データ分析基盤の開発から活用まで
kniino
0
1.8k
ビジネスとエンジニアリングの接合点 そしてコード品質がそこに及ぼす影響 v1.1 / The Intersections of Business and Engineering, and The Impact of Code Quality There (v1.1)
mtx2s
11
2.4k
疲弊しない!AWSセキュリティ統制の考え方 #devio_osakaday1
masahirokawahara
6
5.8k
Algyan イベント振り返り
linyixian
0
170
0→1開発における技術選定において一番大切なこと
bicstone
1
310
Kubernetesでアプリの安定稼働と高頻度のアップデートを両立するためのプラクティス / Best Practices for Applications on Kubernetesto Achieve Both Frequent Updates and Stability
hhiroshell
10
2.9k
SREとその組織類型
tatsuo48
8
1.4k
少数チームで挑む: SwiftUI, TCA, KMPを用いた 新規動画配信アプリ 「ABEMA Live」の開発について
tomu28
0
490
[2024年3月版] Databricksのシステムアーキテクチャ
databricksjapan
7
1.8k
【SORACOM UG】SIM Deep Dive セキュアエレメント編
soracom
PRO
0
190
Signals Unleashed: The Full Guide
rainerhahnekamp
0
350
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
990
Building Your Own Lightsaber
phodgson
97
5.7k
Music & Morning Musume
bryan
40
5.5k
Statistics for Hackers
jakevdp
789
220k
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.6k
Infographics Made Easy
chrislema
237
18k
Fontdeck: Realign not Redesign
paulrobertlloyd
75
4.9k
Teambox: Starting and Learning
jrom
127
8.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
VelocityConf: Rendering Performance Case Studies
addyosmani
319
23k
Making the Leap to Tech Lead
cromwellryan
123
8.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
118
38k
Transcript
Ship cli tools for cross- platform w/Github + wecker 2014/09/26@HDE
MTS TANABE Ken-ichi
動機 • OS X, Linux, Windows向けにcliツールを配布 したい • 開発者以外にも使ってほしい ◦
APIを叩いて何か処理をしたり ◦ 簡単なサーバを起動してデータをやりとりしたり • いつものようにCIしつつビルド、リリースまで自動 化したい
道具 • Go ◦ クロスプラットフォーム (OS X, Linux, Windows, BSD)
◦ 単一バイナリ ◦ 豊富な標準ライブラリ (syscallからnet/httpまで) • Github ◦ ソースコードリポジトリ • Wercker ◦ ビルド環境を自由に作成できるCI as a Service ◦ goxcを使い、クロスコンパイル ◦ 成果物をGithub Releasesへデプロイ
goxc • goxcを使うと以下を自動的に実行 ◦ 各プラットフォーム向けツールチェインのビルド (必要なら) ◦ クロスコンパイル ◦ プラットフォーム毎にアーカイブ
• goxcももちろんGoで書かれていてダウンロードする だけで動作する goxc -tasks='xc archive' -bc 'linux,amd64,386 darwin,amd64,386'
wercker (workerと読む) • Dockerのコンテナのように ビルド環境をboxとして自 由に構築、共有できる • 成果物のデプロイプロセス も定義できる •
サービスはまだベータの 位置付け
wercker (build) • YAMLでビルドプ ロセスを定義 • go {get, build, test,
fmt} • 最後にgoxcでビ ルド
wercker (one-click deployment) herokuなどのPaaS にもデプロイ可能
wercker (deploy) • UIから手動デプロイ • 特定ブランチへの pushに応じて自動 デプロイ
参考文献 • “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