Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
継続的インテグレーション(CI)ツールとして有名なJenkinsは、ソフトウェア開発におけるテストやビルドと言った作業を自動化するツールだ。本記事ではJenkinsの最新版となるバージョン2系で正式に導入された、パイプライン機能を使ったビルド/テスト環境の構築を紹介する。 CIツールと「Jenkins」 ソフトウェア開発の現場において、そのテストはソフトウェアの設計やコーディングと同じくらい重要な過程である。近年のWebアプリケーションやスマートデバイス向けアプリケーション開発ではアプリケーションのリリース間隔が短くなっている傾向があり、そのためテストもより迅速かつ頻繁に行わなければならくなっている。そういった環境で有用なのが、継続的インテグレーション(CI)ツールだ。 CIは、元々は「ソフトウェアの開発コストを下げるためには開発の初期から頻繁にテストを行ってフィードバックを行うべき」とい
JenkinsのUXをモダンにする新プロジェクト「Blue Ocean」登場。統一的デザインのためのJenkins Design Language(JDL)も開発中 ビルドやテスト、デプロイなどの自動化を実現してくれるツール「Jenkins」は、2カ月前の4月に最新のメジャーバージョンアップ版となる「Jenkins 2.0」が登場したばかりです。 そのJenkinsのUXをモダンで魅力的なものにする新プロジェクト「Blue Ocean」が発表され、ソースコードの公開が始まりました。 シンプルで魅力的なUXへ Blue Oceanの開発理由は、「Introducing Blue Ocean: a new user experience for Jenkins」で次のように説明されています。 In recent years developers have become rapidly attr
(Photo by:Dirk Haun) Jenkinsの実績はとても多く、導入実績を不安があるツールとはだれも感じていないと思います。登場から今年2015年に至るまで、おおよそ10年間で「CIツールと言えばJenkins」と認知されるまでになり、ウェブアプリ開発、業務システム開発、ゲーム開発と広い用途で利用されています。 2005年に前身となるHudsonが登場し、2007年頃から話題になり始めてから、2008年のJava OneでDuke’s Choice Award開発者ソリューション部門を受賞、2011年には開発者がJenkinsでGoogle-O’Reilly Open Source Awardを受賞しています。 クックパッドでの事例 レシピ検索サービスのクックパッド(http://cookpad.com/)ではrspecのテスト実行にJenkinsを利用しています。テストを分散
技術部の福森です。 クックパッドでは RSpec と Jenkins を利用して CI による自動テストを行なっています。 テストの数は 12000 examples を越えていて、テストによっては稀に失敗する物が出てきています: 時間帯依存で失敗してしまうもの 他に同時に実行されるテストに依存しているもの (並列実行で組合せが変わり再現する) インテグレーションテストでの ajax リクエストの微妙なタイムアウト etc また、本番環境を壊さないよう、 CI で成功したリビジョンのみデプロイ可能となっており、開発者が push しデプロイしたいと思っている時に無関係な原因で失敗する事を避けたいという欲求があります。 なぜなら、再度ビルドを実行する時間 (およそ 10 分) の間待たされる事になるからです。 そこで、そのようなテスト起因での失敗を減らし、かつ開発者にそれらを修正してもらうた
CI環境のサンプルとして前回、記事「作業の効率化のためのCI環境構築」を紹介しました。この記事を公開したところ、環境構築の仕方を知りたいとの要望を多数の読者から頂きましたので、複数回の記事に分けて説明したいと思います。 Jenkinsを利用されている方は、LinuxやmacOSで利用されている方が多いと思いますが、本記事ではサーバが苦手な人でも導入できるよう、「Windows環境を使ったCI環境構築」をテーマとして手順を説明します。 1。ソフトウェアのインストール 環境構築に必要なソフトウェアをインストールしましょう。必要となるソフトウェアは以下になります。 Jenkins 2.7.2(http://jenkins-ci.org/) git for windows 2.9.3(http://msysgit.github.io/) WinSCP 5.9.1(http://winscp.net
Webアプリケーションを開発において、最新ファイルをこまめにテスト環境に反映しなければいけない場面があると思います。しかし、これらの作業を手動で行っていると、ビルド(SassのビルドやFlashコンパイルなど)に時間がかかったり、ファイルアップ時に反映漏れや誤ったファイルをアップしてしまうなどの人的ミスが発生し、ムダな時間を費やしてしまった経験のある方もいらっしゃるかと思います。 そこで、作業の効率化および人的ミスの軽減のために、CI(継続的インテグレーション)ツールであるJenkinsとAWS、GitHubを使って、Flashコンテンツのビルドからテスト環境へのデプロイまでを行ってくれるCI環境を構築してみました。 ※記事の最後に実際に動作する様子を撮影したデモを用意しました。 Jenkinsとは? Jenkinsとは、オープンソースのCI(継続的インテグレーション)環境を構築するための
概要 以前 Jenkins入門の入門 でJenkinsの概要と導入について調べましたが 1歩進んでGitHubと連携してGitにPushした時に自動ビルドを走らせるまでをやってみます ユニットテスト(単体テスト)やビルドなどを自動で走らせたい時に良いかと思います ここから応用するとプルリクエストをマージさせた時に走らせたりなど色々なタイミングで自動ビルドを行うことができます 手順 GitHubの設定 ※ 以下全てJenkinsサーバでの作業 GitHubにSSHを行ってknown_hostsに追加を行う $ sudo su -s /bin/bash jenkins $ mkdir ~/.ssh;cd ~/.ssh // 自分のメールアドレス $ ssh-keygen -t rsa -C test@example.com // パスワードを聞かれるが空で登録する $ chmod 600 id
マイクロソフトは「Jenkins」プロジェクトと提携し、AzureクラウドにおけるJenkinsの開発/デプロイインフラ構築に協力する。 米マイクロソフトは2016年5月18日(米国時間)、「Jenkins」プロジェクトとの提携を公式ブログで明らかにした。 Jenkinsは、ソフトウェアの開発プロセスにおけるビルドやテスト、デプロイなどをジョブとして管理し、ジョブの実行を自動化できるオープンソースソフトウェア(OSS)の継続的インテグレーション(CI:Continuous Integration)/継続的デリバリ(CD:Continuous Delivery)ツール。2016年4月に最新版「Jenkins 2.0」をリリースし、一連の流れをパイプライン処理として定義、視覚化するパイプラインが標準機能としてサポートされるなど、ユーザーニーズを反映したアップデートも盛んに行われている。 このよ
オープンソースソフトウェアの継続的インテグレーション(CI:Continuous Integration)/継続的デリバリ(CD:Continuous Delivery)ツールとして広く使われている「Jenkins」の最新版「Jenkins 2.0」がリリースされた。 パイプライン機能の強化「Pipeline as Code」と「ステージビュー」 Jenkinsは、ソフトウェアの開発プロセスにおけるビルドやテスト、デプロイなどをジョブとして管理してジョブの実行を自動化するツール。これに加えて、一連の流れをパイプライン処理として定義、視覚化する機能がプラグインとして提供されていた。 Jenkins 2.0では、このパイプラインが標準機能としてサポートされ、ユーザーはGroovyのDSL(ドメイン特化言語)を使って、パイプラインをコードとしてモデリングできるようになった。このコードは、プロジェ
「Jenkins 2.0」のベータ版では、おもな変更点としてデリバリーパイプラインの搭載、使い勝手の向上、完全な後方互換性の維持が行われている。 新たに搭載されたデリバリーパイプラインは、ソフトウェア配布のパイプラインをコードで記述可能なDSL(domain-specific)言語によるプラグインで、DSL言語によってビルド→テスト→デプロイの手順を簡単かつ迅速に記述でき、生産性の向上を実現する。なお、パイプラインはGitおよびGitHubのブランチを標準でサポートしている。 使い勝手の向上では、新たなユーザーにとって負担となっていた、膨大なプラグインの中から自分の用途に合ったものを見つけ出す作業を軽減すべく、初回起動時におすすめのプラグインを自動でインストールする機能が追加された。 また、アイテム作成ページのデザインを変更し、作成するジョブの形式をカテゴリで選べるようにしている。加えて、
「XFLAG(TM)〈エックスフラッグ〉スタジオ」をご存じだろうか。あのミクシィが仕掛けた大ヒットゲーム「モンスターストライク」(以下、モンスト)を作り出したスタジオで、“ケタハズレな冒険を”をテーマに、ゲームや映像コンテンツを世界に向け発信している。現在ではニンテンドー3DS(TM)版のモンストもリリースし、YouTubeではアニメーションの配信を行うなど、多方面での展開が進んでいる。 そのXFLAGスタジオが今、冒険を共にする「エンジニア」を募集している。その狙いを、同スタジオ システム開発部の吉池佑太氏、五嶋壮晃氏、そして同社 海外運用部 企画グループ 台湾チームの六島良美氏に聞いてみた。 「自動化」が進むXFLAGスタジオの開発体制/ワークフロー XFLAGスタジオでは、バトルゲームに特化し、モンスト、新作ゲームタイトルを手掛けている。外注のスタッフも含めれば、スタジオメンバーは約
2015-07-02 Jenkinsと完全にサヨナラして、CircleCIに移行した話 CI Jenkins CircleCI 長らくCIはJenkinsを利用して開発をしてきて、Hudson時代からご愛顧してきたのですが、この春から新しくスタートしたプロジェクトではJenkinsを利用しないという決断をしました。 Jenkinsとサヨナラした理由 複数プロジェクトで共有して利用するのがツライ うちの会社では共通で用意されたJenkinsがあって(それなりにスペック高くて、slaveもぶら下がってる)、色々なプロジェクトがそれを利用しています。 このケースの問題点は何よりもランタイムやSDKを共有してしまうことにあります。全てのビルドに副作用を与えることなく、ランタイムやSDKを追加・更新するのが簡単ではありません。それを滞りなくやるには事前にどのビルドが何を使っているかを把握したり、利用
LINEは4月28日、エンジニアを対象とした初の大規模技術カンファレンスとなる「LINE DEVELOPER DAY_2015 Tokyo」を、渋谷・ヒカリエホールにて開催した。本稿では、同イベントの午前中最後のセッション「A-4: LINE Platform Development Chronicle」についてレポートする。 同セッションでは、同社 開発1センター LINE開発1室所属のTom Tsuruhara氏が、「LINEメッセージング基盤の進化」「LINE流マイクロサービス」という二つのテーマをもとに、LINEのプラットフォームを支えるアーキテクチャや組織、文化について解説した。 LINEメッセージング基盤の進化 2011年6月にスマホ用チャットアプリとしてスタートしたLINEのアーキテクチャは当初、至ってシンプルで一般的なものだった。
修正したアプリケーションをいち早くリリースするためには、アプリケーションの動作検証も短時間に終える必要がある。これを実現するのが、継続的インテグレーション(CI)ツールとテストツールだ。新規開発から実施するだけでなく、既存のソースに対しても適用できる。 TIS:3時間おきに回帰テスト Jenkins、JUnit、PMD など 「システム稼働後の追加・修正でデグレードを起こさないことに最大の注意を払った」と、TISの竹内祐介氏(アプリケーション開発センター アプリケーション開発部主査)は述べる。 デグレードとは、システムをバージョンアップした際に、以前よりもサービスの品質が低下することだ。機能追加や修正のためにソースコードを変更したとき、動作検証が不十分だと起こり得る。 竹内氏がチームリーダーを務めたリース会社の資産管理SaaSの開発プロジェクトでは、特にデグレード対策が重要だった。このプロ
対象読者 JavaScriptの基本をある程度理解している方 テストコードをこれから書こうと考えている方 継続的インテグレーションで「コードを健康的な状態に保つ」 皆さんはどのように開発したコードのテストとビルドを行っていますか? もう15年ほど前になりますが、筆者が行っていたJavaプロジェクトの方法を紹介しましょう。 テキストエディタでJavaのコードを修正 共有ディレクトリにコピー システムすべてのコードをコンパイル システムすべてのコードをjarファイル化 共有開発環境を手動シャットダウン 共有開発環境に手動ビルド 共有開発環境を手動起動 手動で画面から動作テスト エラーが起きた場合は1.に戻る 箇条書きにするとやることが多いですね。もしかすると古いシステムを開発されている方々は、これと近い方法でテストをしている場合もあるのではないでしょうか。何をやっているかはわかりやすいのですが
お久しぶりです。アジャイル推進おじさん改め、サーバCIおじさんの増田です。 プライベートではベヨネッタ2をやっています。3rdクライマックスはクリアできそうです。最高難易度はたぶん無理です。 2015.3.13 追記 社内で共有するレシピのリポジトリをsite-cookbooksからff-cookbooksに変更しました。 フィードフォースのサーバリポジトリ 弊社は今年の4月くらいから serverspecを導入しましたが、CIはしていませんでした。構成管理にはChef-soloを使っており、GitHubのリポジトリはこのようになっております(数字は参照順です)。 server-social-plus site-cookbooks cookbooks ff-cookbooks (git submodule) server-datafeed-plus site-cookbooks cookb
先日公開した記事「JenkinsでCI環境構築チュートリアル(Windows編)」では、Jenkinsのインストールとジョブの作成方法についてご説明しました。今回は特定のブランチにPUSHされたタイミングでGitHubと連携して最新ファイルを取得する方法をご説明します。 完成イメージ ~JenkinsとGitHubの連携~ 実際の開発シーンを想定して上記の図のようなフローを構築したいと思います。開発者が変更したソースコードをGitHubにPUSHしたことをトリガーにJenkinsにその旨を通知します。Jenkinsはその通知を受けて、最新ファイルをGitHubから取得してくる仕組みとなります。 処理の流れとは逆になりますが、まずはJenkins側で「GitHubから通知を受け取る設定」と「ジョブの作成」から行っていきます。 Jenkinsの設定 ~GitHubからの通知を受け取る設定~ 本
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く