Soumettre la recherche
Mettre en ligne
バージョンアップに負けないためのプラクティス
•
5 j'aime
•
4,275 vues
Yuji Tokuda
Suivre
質問はこちらで受け付けます: https://twitter.com/dakuton
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 48
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Tokyo r 10_12
Tokyo r 10_12
Tadayuki Onishi
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Yahoo!デベロッパーネットワーク
冬だからAndroid再入門
冬だからAndroid再入門
Katsumi Honda
Android studio で行ってみよう!!
Android studio で行ってみよう!!
Kazuaki Ueda
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
Masayuki Abe
実は怖くないDevOps
実は怖くないDevOps
Masanori Ishigami
Dodai projectの紹介
Dodai projectの紹介
Osamu Habuka
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
Recommandé
Tokyo r 10_12
Tokyo r 10_12
Tadayuki Onishi
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Yahoo!デベロッパーネットワーク
冬だからAndroid再入門
冬だからAndroid再入門
Katsumi Honda
Android studio で行ってみよう!!
Android studio で行ってみよう!!
Kazuaki Ueda
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
Masayuki Abe
実は怖くないDevOps
実は怖くないDevOps
Masanori Ishigami
Dodai projectの紹介
Dodai projectの紹介
Osamu Habuka
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
Practical Android scripting with Ruby
Practical Android scripting with Ruby
Masahiro Kawato
Devsumi2013 gunta 2_pdf
Devsumi2013 gunta 2_pdf
Gunther Brunner
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in Android
Taisuke Oe
Docker Machineを始めるには?
Docker Machineを始めるには?
Masahito Zembutsu
10+ Deploys per day at COOKPAD
10+ Deploys per day at COOKPAD
Kengo HAMASAKI
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19
Masahito Zembutsu
20200516 selenium-meetup-winappdriver
20200516 selenium-meetup-winappdriver
Hiroko Tamagawa
Dockerを使ってみよう
Dockerを使ってみよう
Ryo Adachi
Dockerで開発環境をデリバる
Dockerで開発環境をデリバる
Daigou Harada
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Takashi Someda
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
Tomoki SHISHIKURA
Sacss sp5
Sacss sp5
Wataru OKAMOTO
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
Aiming study#6pdf
Aiming study#6pdf
Koutaro Chikuba
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
Midori Oge
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
Sugarcubeをはじめよう
Sugarcubeをはじめよう
Eihiro Saishu
Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)
Jun Hosokawa
Droidcon London2012 Speaker Experience
Droidcon London2012 Speaker Experience
Kenichi Kambara
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版
i_yudai
Contenu connexe
Similaire à バージョンアップに負けないためのプラクティス
Practical Android scripting with Ruby
Practical Android scripting with Ruby
Masahiro Kawato
Devsumi2013 gunta 2_pdf
Devsumi2013 gunta 2_pdf
Gunther Brunner
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in Android
Taisuke Oe
Docker Machineを始めるには?
Docker Machineを始めるには?
Masahito Zembutsu
10+ Deploys per day at COOKPAD
10+ Deploys per day at COOKPAD
Kengo HAMASAKI
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19
Masahito Zembutsu
20200516 selenium-meetup-winappdriver
20200516 selenium-meetup-winappdriver
Hiroko Tamagawa
Dockerを使ってみよう
Dockerを使ってみよう
Ryo Adachi
Dockerで開発環境をデリバる
Dockerで開発環境をデリバる
Daigou Harada
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Takashi Someda
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
Tomoki SHISHIKURA
Sacss sp5
Sacss sp5
Wataru OKAMOTO
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
Aiming study#6pdf
Aiming study#6pdf
Koutaro Chikuba
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
Midori Oge
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
Sugarcubeをはじめよう
Sugarcubeをはじめよう
Eihiro Saishu
Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)
Jun Hosokawa
Droidcon London2012 Speaker Experience
Droidcon London2012 Speaker Experience
Kenichi Kambara
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版
i_yudai
Similaire à バージョンアップに負けないためのプラクティス
(20)
Practical Android scripting with Ruby
Practical Android scripting with Ruby
Devsumi2013 gunta 2_pdf
Devsumi2013 gunta 2_pdf
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in Android
Docker Machineを始めるには?
Docker Machineを始めるには?
10+ Deploys per day at COOKPAD
10+ Deploys per day at COOKPAD
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19
20200516 selenium-meetup-winappdriver
20200516 selenium-meetup-winappdriver
Dockerを使ってみよう
Dockerを使ってみよう
Dockerで開発環境をデリバる
Dockerで開発環境をデリバる
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
Sacss sp5
Sacss sp5
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Aiming study#6pdf
Aiming study#6pdf
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
Sugarcubeをはじめよう
Sugarcubeをはじめよう
Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)
Droidcon London2012 Speaker Experience
Droidcon London2012 Speaker Experience
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版
バージョンアップに負けないためのプラクティス
1.
バージョンアップに負けないための プラクティス 2014/12/13
#optim_study 14年12月13日土曜日
2.
# 0. はじめに
14年12月13日土曜日
3.
# 自己紹介 $
whoami tokuda $ man tokuda name: 徳田 祐二(とくだ ゆうじ) company: 株式会社オプティム job: Optimal Biz Androidエージェント開発 +たまにビルド環境メンテナ language: 仕事で使うのは日本語/Java/C++ JVM上で動く言語(Scala/Groovy)はだいたい友達 14年12月13日土曜日
4.
# 1. バージョンアップの話
14年12月13日土曜日
5.
# サービスのバージョンアップ #
バージョンアップとは # 1. 新しい機能をのせること # 2. 過去に見つかった問題を改善すること # OSやフレームワークのバージョンアップ # 機能追加や改善のための手段 # サービスを「ある程度」以上のバージョンアップをするために必要 14年12月13日土曜日
6.
# なぜバージョンアップを行うか? #
攻めのバージョンアップ(メジャーバージョンアップ) # 新しいAPI/構文 # 対応フレームワーク追加 # GCやVMなどの性能改善 # 守りのバージョンアップ(マイナーバージョンアップ or パッチ適用) # 脆弱性に対応する # Rubyのpatch levelをあげる # 公式サポートが切れる # Ruby 1.8.7/1.9.2 は2014/08でサポート終了 14年12月13日土曜日
7.
# 防衛的バージョンアップの特徴 #
特徴 # 寝起きで100m走るようなバージョンアップ # コード規模 # API上はふるまいが変わらないバージョンアップ # コードの修正規模はメジャーバージョンアップより小さい # スケジュール # 計画外バージョンアップ、突発的に発生することもある # 緊急対応が要求される 14年12月13日土曜日
8.
# 2014年は脆弱性の当たり年 #
深刻な脆弱性がいくつかでている # 潜伏期間が長いもの(10年以上)が2014年に集中 # Apache Struts 2 脆弱性: 7年 # OpenSSL 脆弱性(Heartbleed): 2年 # OpenSSL 脆弱性(ChangeCipherSuite Injection): 16年 # GNU bash脆弱性(ShellShock): 25年 # SSL v3.0脆弱性(POODLE): 18年 # Windows IEリモートコード実行の脆弱性(WinShock): 19年 # BIND 9などDNSソフトウェア脆弱性: 1年 14年12月13日土曜日
9.
# Webアプリのアップデート #
OS / ミドルウェア / フレームワークのバージョンアップ # CentOS / Apache, Nginx, Unicorn, MySQL / Rails, RubyGems, ... # バージョンアップするためにやること # 各種アップデート # プロダクションコードやテストコードの修正・リファクタリング # 対応ブラウザごとの動作確認 14年12月13日土曜日
10.
# 複数バージョンの共存 #
既存のフレームワークを残しつつ、新バージョンの動作をみるには? # 1. 言語バージョン管理ツールを使う # Ruby/Rails: rvm(Ruby Version Manager) # 2. 自力でプロセス/リソース分割 # MySQL: daemonを別名登録 # 3. 仮想環境を使う # VirtualBox/VMwareでスナップショット作成 14年12月13日土曜日
11.
# モバイルOSアップデート傾向 #
iOS # 60%の端末がiOS8 # 新OS発表から国内発売までに約3ヶ月 # 契約2年以内ユーザーのうち、100%が最新OS(iOS 8.1)利用可能 # Android # 30%の端末がAndroid 4.4 # 新OS発表から国内発売(Nexus以外)までに約半年 # 契約2年以内ユーザーのうち、40%が最新OS(Android 5.0)利用不可 14年12月13日土曜日
12.
# iOS端末シェア(2014/12時点) #
https://developer.apple.com/support/appstore/ # http://qiita.com/tomofusa/items/c795df0ebbaf668116c0 $ ios_share | iOSバージョン | シェア | SDK Betaリリース | 国内端末発売 | | iOS 6以前 | 4 % | 2010/04 (iOS 4) | 2010/06 (+2) | | - | - | 2011/06 (iOS 5) | 2011/10 (+4) | | - | - | 2012/06 (iOS 6) | 2012/09 (+3) | | iOS 7 | 33 % | 2013/06 | 2013/09 (+3) | | iOS 8 | 63 % | 2014/06 | 2014/09 (+3) | 14年12月13日土曜日
13.
# Android端末シェア(2014/12時点) #
http://developer.android.com/about/dashboards/index.html $ android_share | Androidバージョン | シェア | SDKリリース| 国内端末発売(Nexus除く) | | 2.2 Froyo | 0.5 % | 2010/06 | 2010/10 (+4) | | 2.3 Gingerbread | 9.1 % | 2010/11 | 2011/03 (+4) | | 4.0 Ice Cream Sandwich | 7.8 % | 2011/10 | 2012/04 (+6) | | 4.1 Jelly Bean | 21.3 % | 2012/06 | 2012/12 (+6) | | 4.2 Jelly Bean | 20.4 % | 2012/11 | 2013/05 (+6) | | 4.3 Jelly Bean | 7.0 % | 2013/07 | 2013/10 (+3) | | 4.4 KitKat | 33.9 % | 2013/10 | 2014/05 (+7) | | 5.0 Lollipop | ? % | 2014/10 | ? | 14年12月13日土曜日
14.
# モバイルOSビルド環境の管理 #
iOS # 最新バージョンを使う(しか選択肢がない) # OSアップデートがスムーズ # ビルドツール(Xcode)が古いとAppStore審査リジェクトされる # Android # 複数バージョンの組み合わせを試す # OSバージョンの断片化 # ビルドツール(Apktool)最新だと古いOSでインストール失敗する 14年12月13日土曜日
15.
# 実際に起きた事例 #
Android SDKを最新にしたらシェア6割でインストールできない | Androidバージョン | シェア | SDKリリース| 国内端末発売(Nexus除く) | | 2.2 Froyo | 0.5 % | 2010/06 | 2010/10 (+4) | | 2.3 Gingerbread | 9.1 % | 2010/11 | 2011/03 (+4) | | 4.0 Ice Cream Sandwich | 7.8 % | 2011/10 | 2012/04 (+6) | | 4.1 Jelly Bean | 21.3 % | 2012/06 | 2012/12 (+6) | | 4.2 Jelly Bean | 20.4 % | 2012/11 | 2013/05 (+6) | | 4.3 Jelly Bean | 7.0 % | 2013/07 | 2013/10 (+3) | | 4.4 KitKat | 33.9 % | 2013/10 | 2014/05 (+7) | | 5.0 Lollipop | ? % | 2014/10 | ? | 14年12月13日土曜日
16.
# つまり? #
アップデート環境はつくっても動かないことが前提 # 素早く失敗するための工夫が必要 # やりたいこと # アップデート環境を素早く構築したい # 失敗結果をロギングしたい # アップデート前(運用中)の環境は残しておきたい(ロールバック) 14年12月13日土曜日
17.
# 2. Jenkins+IRCの導入
14年12月13日土曜日
18.
# Jenkinsとは #
継続的インテグレーション(CI)のためのツール # ユーザーへの価値提供を短縮化 # 集約された依存関係で成果物をつくる # 集約されたソースコード # 集約されたビルド・テスト環境 # 自動化された実行手順をJenkinsに集約 14年12月13日土曜日
19.
# Jenkinsインストール #
Jenkinsインストール $ brew install jenkins # 起動ファイル(plist)をコピー # シンボリックリンクだとJenkinsバージョンアップでリセットされる $ cp -p /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents 14年12月13日土曜日
20.
# IRCとは #
IRC(Internet Relay Chat) # 多人数で使うチャットツール # なぜIRCを使うか? # 社内サーバーのIRCで安全に社外秘の会話を行う # TwitterやLINEやSkypeは社外サーバー # SSLだけど知らないお友達が話しかけてくる # IRCBotの利用 # 簡単な通知のお仕事 14年12月13日土曜日
21.
# 3匹のbot(1匹め) #
Optimal Bizチーム内で利用しているbot # miyake_bot_v2 # Jenkinsはあまり関係ないけど、CIには必要 # Trac(Bug Tracking System)のチケット概要を教えてくれる # pingコマンドがわりに過去の迷言を話す 14年12月13日土曜日
22.
# miyake-gacha #
昨日出現した迷言 18:00 tokuda_droid: miyake-gacha 18:00 miyake_bot_v2: yuma.miyake said "圧縮された味" 14年12月13日土曜日
23.
# 3匹のbot(2匹め) #
Optimal Bizチーム内で利用しているbot # hatopo-pot # Jenkinsビルド開始を通知 # Gemで実現(carrier-pigeon) 14年12月13日土曜日
24.
# チャーハン #
Jenkinsビルド(チャーハン調理)開始 18:00 hatopo-pot has joined (~hatopo-po@) 18:00 hatopo-pot: (;`・ω・)o━ヽ_。_・_゚_・_フ)) android_agentが http://localhost:8888/job/android_agent/1/で開始されました。 18:00 hatopo-pot has left IRC () 14年12月13日土曜日
25.
# 3匹のbot(3匹め) #
Optimal Bizチーム内で利用しているbot # jenkin-sushi # Jenkinsビルド終了(成功/失敗)を通知 # プラグインで簡単に導入できる 14年12月13日土曜日
26.
# ふつうの通知 #
Jenkinsビルド成功通知(まじめ) 18:00 jenkin-sushi: Project android_agent build #1: SUCCESS in 5 分 17 秒 前: http://localhost:8888/job/android_agent/1/ 14年12月13日土曜日
27.
# IRCサーバー導入 #
ngIRCdインストール $ brew install ngircd # Windowsの場合はInspIRCDを使う http://gigazine.net/news/20080128_inspircd/ 14年12月13日土曜日
28.
# ローカルIRCサーバー向け設定 #
ngircd.conf編集(変更箇所のみ抜粋) $ vi /usr/local/etc/ngircd.conf [Global] Ports = 6665 Listen = ::,0.0.0.0 MaxConnections = 0 MaxJoins = 0 [Channel] Name = #jenkins 14年12月13日土曜日
29.
# Jenkins: IRC通知Plugin
# IRC Notification Pluginをインストール # [Jenkinsの管理] > [システムの設定] IRC Notification Hostname: localhost Port: 6665 SSL: off Name: #jenkins # Jobごとの設定 [ビルド後の処理] > [IRC Notification] Name: #jenkins 14年12月13日土曜日
30.
# 3. Dockerの導入
14年12月13日土曜日
31.
# Docker? $
boot2docker ssh ## . ## ## ## == ## ## ## ## === /""""""""""""""""___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~ ______ o __/ __/ __________/ _ _ ____ _ _ | |__ ___ ___ | |_|___ __| | ___ ___| | _____ _ __ | '_ / _ / _ | __| __) / _` |/ _ / __| |/ / _ ' __| | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < _/ | |_.__/__/__/__|______,_|__/___|_|___|_| 14年12月13日土曜日
32.
# Docker=軽量化された仮想マシン #
仮想コンテナ # 他のマシン(コンテナ外)との依存関係を分離 # Dockerfileによる差分管理 # メタファイルの差分のみ実行 # 他のメタファイルをベースに拡張作成できる # 作成イメージの共有 # 作成したイメージをDockerHubでパプリック化 # ソースコードリポジトリで共有も可能 14年12月13日土曜日
33.
# Dockerコンテナ化技術: LXC
# LXC(Linux Containers)による仮想化 # CPUやメモリの割り当て # cgroups(Control Groups)でLinux上のプロセスをグループ化してリソース配分 # ディレクトリの割り当て # chrootでイメージ内のディレクトリをLinux上のディレクトリに割り当てる # ネットワークの割り当て # DockerのVM全体で仮想NIC(docker0)を割り当て # コンテナごとのNIC(eth0)にdocker0のプライベートIP(172.17.x.x/16)を割り当て 14年12月13日土曜日
34.
# Dockerコンテナ化技術: AUFS
# AUFS(Another Union FS)によるファイルシステム管理 # read onlyのファイルシステム+read/writeなファイルシステムを # ひとつのファイルシステムとして管理 read/write: A’ C read only: A B --------------------------------- aufs: A’ B C 14年12月13日土曜日
35.
# Dockerインストール #
Docker + Boot2Docker(VirtualBoxのDocker実行環境) インストール $ brew install docker boot2docker # Dockerインストール確認 (/usr/local/bin) $ docker -v Docker version 1.3.1, build 4e9bbfa $ boot2docker version Boot2Docker-cli version: v1.3.1 14年12月13日土曜日
36.
# Docker-VirtualBox連携 #
VirtualBox上でDockerを実行するための設定 # Docker用VM設定+起動 $ boot2docker init $ boot2docker up # boot2docker up実行時に設定要求されたパラメータを登録 $ export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2376 $ export DOCKER_CERT_PATH=~/.boot2docker/certs/boot2docker-vm $ export DOCKER_TLS_VERIFY=1 14年12月13日土曜日
37.
# Dockerfileによるイメージ作成 #
Dockerイメージ作成 $ docker build -t optim/android:1.0 . # Dockerfile FROM ubuntu:12.10 # ベースイメージ指定 RUN apt-get install -y curl git htop … # Tools準備 RUN apt-get install -y oracle-java7-installer # Java RUN cd /opt && wget -q # Android http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz RUN ... 14年12月13日土曜日
38.
# Dockerイメージ #
イメージ一覧表示 $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE optim/android 1.0 dd5312be49c0 7 days ago 2.09 GB ubuntu 12.10 c5881f11ded9 5 months ago 172.2 MB ubuntu quantal c5881f11ded9 5 months ago 172.2 MB 14年12月13日土曜日
39.
# VM起動確認 $
boot2docker ssh ## . ## ## ## == ## ## ## ## === /""""""""""""""""___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~ ______ o __/ __/ __________/ _ _ ____ _ _ | |__ ___ ___ | |_|___ __| | ___ ___| | _____ _ __ | '_ / _ / _ | __| __) / _` |/ _ / __| |/ / _ ' __| | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < _/ | |_.__/__/__/__|______,_|__/___|_|___|_| 14年12月13日土曜日
40.
# 差分イメージ #
ツリー表示で差分管理をみてみる $ docker images --tree Warning: '--tree' is deprecated, it will be removed soon. See usage. └─511136ea3c5a Virtual Size: 0 B └─bac448df371d Virtual Size: 100.9 MB └─5796a7edb16b Virtual Size: 101.2 MB └─c5881f11ded9 Virtual Size: 172.2 MB Tags: ubuntu:12.10, ubuntu:quantal └─690e41881824 Virtual Size: 172.2 MB ・ ・ └─99b2d316e316 Virtual Size: 2.09 GB └─dd5312be49c0 Virtual Size: 2.09 GB Tags: optim/android:1.0 14年12月13日土曜日
41.
# 既存イメージを利用 #
Ubuntuデスクトップ利用も可能 # http://dockerfile.github.io/#/ubuntu-desktop $ docker pull dockerfile/ubuntu-desktop # RailsならPhusion Passengerが便利 # https://github.com/phusion/passenger-docker $ docker pull phusion/passenger-ruby19 $ docker pull phusion/passenger-ruby20 $ docker pull phusion/passenger-ruby21 14年12月13日土曜日
42.
# VirtualBoxインストール #
VirtualBoxインストール $ brew tap phinze/cask $ brew install brew-cask $ brew cask install virtualbox # VirtualBoxインストール確認 $ VboxManage Oracle VM VirtualBox Command Line Management Interface Version 4.3.20 14年12月13日土曜日
43.
# 4. Androidをビルドしてみる
14年12月13日土曜日
44.
# コンテナによるビルドの流れ 14年12月13日土曜日
45.
# 追加でやったこと #
GitHubに各種リソースを追加 # Androidプロジェクトを作成 # プロジェクト依存関係をGradleで記述 # ビルド環境をDockerfileで記述 # https://github.com/dakuton/android-docker-template # Jenkinsジョブ設定 # Managed Script Pluginを利用ビルド # http://qiita.com/dakuton/items/79e95393809bc4fb68fc # Managed Script Plugin # よく使うシェルスクリプトを登録 14年12月13日土曜日
46.
# 動作確認 #
動かない(今日) 14:29 jenkins: Project docker_android_sample build #3: FAILURE in 4.4 秒 前: http:// localhost:8888/job/docker_android_sample/3/ # 原因: dockerコマンドがJenkinsから起動できない # 対応: plistでPATHを指定 $ vi ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist <key>EnvironmentVariables</key> <dict> <key>PATH</key> <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string> </dict> 14年12月13日土曜日
47.
# その他よく使うプラグイン #
Parameterized Trigger Plugin # 下流(後発)のJobにパラメータを引き渡して実行する # ビルドJob->テストJobにリポジトリの情報を引き渡す # Rebuild # 前回実行時のパラメータを再利用してビルド開始 # Email-ext plugin # ビルド完了時にリリースノートをくっつけてメール通知 14年12月13日土曜日
48.
# まとめ #
依存関係はリポジトリ管理できます # 集約されたソースコード => GitHub # 集約されたビルド・テスト環境 => Dockerfile # 自動化された実行手順 => Jenkins # Let’s BUILD FAILED 14年12月13日土曜日
Télécharger maintenant