werckerを使ってみた
TRANSCRIPT
werckerを使ってみた
株式会社エクストーン 豊田陽一
今日のおはなし
● Wercker○ 継続的インテグレーションサービス
○ Androidアプリの自動ビルド環境の例で説明します
Wercker (2)
特徴
● Dockerベースの実行環境
● Github, Bitbucketに対応
● 処理内容はyamlで記述○ pipeline
werckerの動作
● pipeline
box● build, deployを実行する環境
○ Docker image (v2以降)○ ビルドに必要なソフトウェアがセットアップされている
Docker imageを選ぶ■ Android SDK■ GCC■ ruby■ etc...
buildフェーズ
● やること
○ ビルド環境のセットアップ
○ コンパイル
○ テスト
○ パッケージング
○ etc...
deployフェーズ
● やること○ buildフェーズの成果物をデプロイ
■ AndroidのAPKをDeployGateへ送信
■ RailsウェブアプリケーションをHerokuへ送信
■ HTMLやJavaScriptをS3へ送信
■ etc...
deployフェーズ (2)● targetをweb設定画面で登録
○ ブランチ
○ 環境変数■ 公開鍵・秘密鍵のペアも設定可能
○ targetで指定したブランチのbuildが成功したら、deployフェーズが実行可能
step● 名前の付けられた一連のコマンド群
○ https://app.wercker.com/#explore/steps/search/■ ファイルを作成する
■ ssh-keyを追加する
■ slackに通知する
■ Amazon S3にアップロードする
■ 任意のシェルスクリプトを実行する
■ etc…
○ 自分で作成することも可能
wercker.yml
phase
box
step
環境変数
● フェーズ間の受け渡し○ WERCKER_SOURCE_DIR
■ フェーズの入力となるディレクトリ● build: gitからcloneしたコード
● deploy: buildフェーズでのWERCKER_OUTPUT_DIR
○ WERCKER_OUTPUT_DIR■ フェーズの出力ディレクトリ
● build -> deployに渡す際に利用
環境変数
● 成果物○ WERCKER_REPORT_ARTICACTS_DIR
■ webからartifacts.tar.gzとして取得可能
サンプル
● Androidアプリを自動ビルド○ https://github.com/rswisteria/WerckerSample○ https://app.wercker.
com/#applications/56f2b534368950932902e9c9
おわりに
● CIサービスのwerckerを触ってみたよ○ yamlによる設定
■ circle-ciと似ててとっつきやすい
○ 実行環境がdocker image■ 自分であらかじめ作れるので、実行環境の構築に時間がかかることが
ない
■ 実行環境の検証が楽
○ bitbucketに対応