Agile Japan 2015 サテライト<沖縄> https://java-kuche.doorkeeper.jp/events/22305 --- 開発を安心して高速に回すための取り組みの一つに 「テストの実行時間を短縮する」 というものがある。 今回はその一例として、Docker のコンテナ技術を用いてテスト並列実行の高速化かつ安定化を目指した記録を紹介するRead less
Created by Unknown User (winters), last modified on Aug 10, 2015
Docker を用いた rpm / deb パッケージ作成の継続的インテグレーション - ゆううきブログ の続き。 前回は、rpm / deb パッケージを作るために、CentOS、Debianなど各種ディストリビューションを揃える手間をかけずに、Docker コンテナ上でパッケージングして、ついでに Jenkins で CI するみたいなことを書いた。 今回は、作成したパッケージを yum / apt リポジトリに登録して yum / apt コマンドでパッケージインストール/アップデートできるようになるまで継続的インテグレーションするという話。 問題点 yum / apt リポジトリ用の専用ホストを立てて、そこで apache とかで静的ファイルをホストするのはめんどくさい。 特に、mackerel-agent みたいなユーザにインストールしてもらうパッケージの場合、リポジトリを公開し
The procedures in this chapter are for new installations of Jenkins. Jenkins is typically run as a standalone application in its own process. The Jenkins WAR file bundles Winstone, a Jetty servlet container wrapper, and can be started on any operating system or platform with a version of Java supported by Jenkins. Theoretically, Jenkins can also be run as a servlet in a traditional servlet contain
11 Apr 2014 With the push to feature branches and the increased use of git, continuous integration of every single branch can become an infrastructure nightmare. Docker can be used to eliminate the need to deploy to remote servers and run your integration tests on the same server as your build. Scaling can then be done using Jenkins slaves that run one or more jobs concurrently. The Problem Git ha
CSSというか静的ファイル全般の配信が止まる。 (※我々の目の前で突如フラットUI化したJenkins氏の様子) Jenkins で、 css 等が適用されなくてスタイル崩れを起こす事があるんだけどあれなんなんだろう…— そらは (@sora_h) 2013, 4月 4 JenkinsさんちょいちょいCSSが反映されなくなるんだけどどうしてなん?— 口玉(西の緊縛[ゴールデンボンバー]) (@Kuchitama) 2013, 7月 12 jenkinsのcssが崩れる時間と、私の顔のcssが崩れる時間の相関関係を考えている— しまざきしょうこ♀しょっぴー (@shokos) 2013, 6月 28 (みんな困っている) 今日また起きてなんとなく https://issues.jenkins-ci.org/browse/JENKINS-17526 を読んでみたらGreg Albrechtが書
Using Docker with Github and Jenkins for repeatable deployments Docker helps us deploy to Buddycloud’s testing and production environments. We use Docker to run Buddycloud’s hosted environment. And deploy after every commit to our testing and production Git branches. Again and again. Automatically. Background: we’re holded up in the Austrian mountains working on the new Buddycloud hosting platform
13. ## Dockerfile の配置 ├──Gemfile dockerfiles/<image-name> で ├──Gemfile.lock Dockerfile を配置する ├──Rakefile ├──dockerfiles │ ├──base │ │ ├──Dockerfile │ │ └──keys │ │ ├──id_rsa │ │ └──id_rsa.pub base イメージ │ └──jenkins │ ├──Dockerfile │ └──start-jenkins.sh └──spec ├──base jenkins イメージ │ └──sshd_spec.rb ├──jenkins │ └──jenkins_spec.rb └──spec_helper.rb 14. ## spec の配置 ├──Gemfile spec/<image-name> で ├──
類似のソフトウェアとして、Puppet や Ansible といったものもあります。こういったインフラ自動化まわりのソフトウェアについてはペパボの宮下さんの インフラ系技術の流れ が参考になります。 Chef in グリー さて、グリーでのChefまわりの構成をご紹介します。下図が全体の構成です。 開発環境 開発は各個人のマシン上で仮想マシンを立ち上げて行なっています。クックブックの開発では、クックブックを開発する人が serverspec でテストを書くようにしていて、構築後のサーバが期待通り動くことをテストしています。一つのクックブックでも設定値などの条件によって動作が変わってくるため、test-kitchen を用いて複数の条件(ランリストやノードのアトリビュート(以下、「アトリビュート」)などの組み合わせ)でテストを行っています。 また、一部仮想マシンを使う必要がないテスト(att
個人がなぜ、オープンソースソフトウエア(OSS)の開発に取り組むのか。リーナス・トーバルズ氏はかつて、Linuxの開発を始めた動機を「Just for fun(楽しかったから)」と語った。 一方、「CI(継続的インテグレーション)」ツールのOSS、「Jenkins」の開発者である川口耕介氏は、その動機を「怒り」だと語る。川口氏の「怒り」が今、世界中のソフトウエア開発者の生産性を、大きく変えようとしている。 CIとは、ソフトウエアの開発プロセスにおける省力化作業全般を指す。Jenkinsを導入することで、開発者はソースコードのコンパイルやビルド、テスト、品質検査、サーバーへの展開などを自動化できるようになる。 Jenkinsのイラストロゴは、蝶ネクタイをした「執事」だ。開発者にとって面倒なビルドやテストといった作業を確実にやってくれる執事、それがJenkinsなのである。 川口氏は、米サン・
弊社Jenkinsビルド開始時にFF5の戦闘音楽 -> ビルド成功でファンファーレという流れをつけた— 川峠さん (@eaglesakura) 2013年2月13日 Jenkinsを使った開発を楽しくしようとして、BGMをつけたら案外話題になったからそのまとめ。 事の始まり iOSアプリの開発のために、余っていたMac Book AirにJenkinsを導入することに せっかくMBAだから、サーバー側のJenkinsには出来ないことをやろうと思った 導入方法 導入というほど大仰なことは実は行ってなくて、かなり適当な方法を取っています。 Macのターミナルには"afplay"という音源再生のコマンドがあるので、それを組み合わせるだけです。 鳴らしたい音をmp3でJenkinsを導入したMBAに保存 もともとJenkinsのビルドはシェルを実行する形式だったので、シェルに直接サウンドを鳴らすコ
さくらのVPS+Jenkins+github+rails3の続編。 ゴールは、githubにpushすると、さくらのVPSで動いているJenkinsがgithubから最新ソースひっぱってRobolectricのテストかけた上に、apkを作るところまで。 プロジェクトの作成 mavenプロジェクトにしてみた。 ユーザーの作成 以前作ったやつで兼用。 SSH key コレも兼用しようと思ったらダメだった。1リポジトリにつき1keyだそうで。 https://help.github.com/articles/error-key-already-in-use Once a key has been attached to one repo as a deploy key, it cannot be used on another repo. If you're running into this
テストが終わるまでの時間で書いてみる。 Jenkinsでジョブを実行させるときに、外部パラメータで任意のブランチを対象にビルドできると墓ドル。 例えば、自分のローカルブランチをマージするまえに、テストが通るか確認したい場合とか。 そんなのローカルでテストすりゃーいいじゃんって言われるかもしれないが、 テスト全部通すのに時間が掛かるようになってると、とりあえずCIに実行を投げておいてあとで確認するほうがずっと効率がいい。 F.Y.I: Building github branches with Jenkins ジョブの設定 「ビルドのパラメータ化」にチェックをつけて、以下のようにbranchって名前のパラメータを設定しておく。 「ソースコード管理システム」で「Branches to build」のところに、設定したパラメータである"$branch"を入れておく。 ジョブの設定は以上。上記の方
定期実行って、Cronを使ってやるのが一般的ですよね。 エンタープライズシステムだとJP1とか使って管理したりしますが、 それJenkinsで良くない? というわけで考えて見ました。なんでJenkinsがいいのか。 メリット(cronとの比較)① SVNなどのSCMとの連携が可能 ② メール等のアラートが可能 ③ 実行履歴の確認が容易 デメリット① Jenkinsが落ちたら動かない ただこれはJenkinsの監視やバックアップである程度回避できます。 またJP1 などは大変高価なので、無償で使えるのは嬉しいですね!実際にやってみたまずはSVNに適当なプロジェクトを作って適当なShellスクリプトをコミットしてみます。 SVNはファイル単位でのチェックアウトができないのでGitで管理したほうがいいのかもしれません。 Shellスクリプトは終了コードを明示的に0と書いたほうが良いでしょう。 J
Hudson Locks and Latches plugin Jenkinsのジョブを排他的に実行する場合は「Hudson Locks and Latches plugin」というプラグインを使用します。 インストールするとジョブの設定画面に「ビルド環境」という項目が表示され、「Locks」というチェックボックスがあります。 この「Locks」をオンにすると排他対象のジョブとなります。 ※nameリストボックスについては後述するのでとりあえず(default)のままでよし。 つまりジョブA、ジョブB、ジョブCが存在するときにジョブAとジョブBを排他実行したい場合は ジョブAとジョブBの「Locks」をオンにしましょう。 排他グループの指定 排他させたいグループは「Locks」をオンにしたときに表示される「name」リストボックスでグループを指定できます。 インストール直後はdefault
このところ頑張って作っていたBuildHiveがようやっとリリースに漕ぎ着けましたので、使ってやってください。 BuildHiveはCloudBeesのDEV@cloudの一環で、GitHubのリポジトリに対する継続的インテグレーションビルドをとても簡単にセットアップできるサービスです。どなたでも無料で使えます。 トップページには既にBuildHive上でビルドされている様々なプロジェクトが表示されます。新しくプロジェクトをセットアップする為に、BuildHiveにいって右上の赤い「Add your Git repositories」ボタンをクリックします。 GitHubとのOAuth認証を聞かれるので、「Allow」ボタンを押して許可してやってください。 すると、CIビルドをセットアップするGitHubのリポジトリを選ぶ画面が出てくるので、適当なプロジェクトを選んで「Enable」を押し
Goal Jenkins で達成出来る事は沢山ありますが、この記事では複雑な設定を伴わないで実現可能な、apk の自動生成、テストの自動実行までを対象とします。 またビルドツールも Ant, Maven, Gradle, Ivy 等がありますが、標準でもサポートされており、最小構成な Ant を選択しています。 ※ Jenkins でどこまで自動化したいかによりますが、様々なタスクを実行しようと思うと豊富な Plugin を持つ Maven が便利ではあるので、それはまた別途。 ant でビルド出来る様にする Jenkins で CI するには、まずはプロジェクトをコマンドでビルド出来る必要があります。 Eclipse で作成したプロジェクトでは、そのままではビルドする事が出来ない為、後から Android SDK に含まれるコマンドを利用して Ant 用の build.xml を生成しま
はじめに 近年、iOSやAndroid向けのアプリケーション開発が盛んに行われ、これまでWebが中心であったソーシャルアプリ開発も、徐々にブラウザの枠を超えたところに手を伸ばしつつあります。ソーシャルアプリ開発のプロジェクトは、多くの場合、スモールスタートで始まりますが、開発を続けていくにつれて、コードが増え、端末が増え、人が増え、気がつけば、機能を実現するための実装と関係ない部分でのタスクが膨れあがっていきます。そんなコストを技術的に解決するためのしくみがあれば、もっと本質的な部分に時間を割くことができるはずです。 今回は、CI(継続的インテグレーション)ツールのJenkinsと内製のQA向けダウンロードツール、コードレビューツールのGerritを組み合わせた、継続的な開発をサポートするしくみ作りについて、ミクシィでのAndroidアプリケーション開発の事例を取り上げてご紹介します。 1
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く