タグ

CIに関するlearnのブックマーク (14)

  • パイプラインベースのCI/CDツール Concourse CI入門 - BLOG.IK.AM

    パイプラインベースのCI/CDツール Concourse CI入門 - BLOG.IK.AM
  • CI-as-a-ServiceでGo言語プロジェクトの最新ビルドを継続的に提供する

    CI-as-a-ServiceでGo言語プロジェクトの最新ビルドを継続的に提供する Go言語で作成したツールのリリース方法について,最近実践していることを書く. リリースは,ローカルから人手で行っている.具体的には,自分のローカル環境でクロスコンパイルし,セマンティック バージョニングによるタグをつけ,CHANGELOG.mdを丁寧に書いた上でリリースをしている.クロスコンパイルにはmitchellh/gox,リリースには自分で作成したtcnksm/ghrを使っている(ghrについては,“高速に自作パッケージをGithubにリリースするghrというツールをつくった”を参考). その一方で,開発中の最新のビルドも提供するようにしている.例えば,こんな感じで,Pre-Releaseとして提供している.Go言語での開発なので,go getしてくださいと言える.しかし,環境によってビルドが失敗する

  • GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー

    少し前までアプリケーションのデプロイと言えば capistrano などをコマンドラインから叩いてデプロイ、みたいなことをやっていたが、最近は少し様子が違うのでそのやり方、KAIZEN platform Inc. での事例を紹介する。 GitHub のイベントを契機に CI as a Service にデプロイを担当させる GitHub で Pull Request を送って開発するのが前提になっているのは以前にも紹介した。 最近は Travis CI や CircleCI などに代表される CI (Continuous Integration) as a Service があって、CI も自分たちで環境を構築しなくてもクラウドに任せることができる。KAIZEN では CircleCI を積極的に使っている。 これらの CI as a Service は基的に GitHub と連携するこ

    GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー
  • はてなやクックパッドの開発現場で、CIやテストはどう行われているのか?(前編)。CROSS 2014 - Publickey

    Web技術について横断的に語り合うイベント「CROSS 2014」が1月17日、都内で行われました。 そのセッションの1つ「現場に聞く!テスト/CI/DevOps、実際のところどうなの」では、フリーランスエンジニアの伊藤直也氏がセッションオーナーとして司会を担当し、クックパッドで開発まわりのエンジニアをしている舘野祐一氏、はてなでアプリケーションエンジニアをしている伏井洋平氏、KAIZEN platform Inc.の石橋利真氏らがスピーカーとして登壇。 先進的な現場でテストやCIがどのように行われ、エンジニアのチームがどのように情報共有をしているか、音で語るという注目すべき内容でした。記事ではそのダイジェストを紹介しましょう。 現場に聞く!テスト/CI/DevOps、実際のところどうなの 伊藤 今日のテーマとしてはCI(Continuous Integration、継続的インテグレー

    はてなやクックパッドの開発現場で、CIやテストはどう行われているのか?(前編)。CROSS 2014 - Publickey
  • Infrastructure as Code - naoyaのはてなダイアリー

    今年の3月に 入門Chef Solo - Infrastructure as Code というを書いた。 その名の通り Chef の入門書なのだけど、このサブタイトルは "Configuration Management Tool (構成管理ツール)" でもなく "Provisioning Framework (プロビジョニングフレームワーク)" でもなく、はたまた "Automated Infrastructure (自動化されたインフラ)" でもなく、"Infrastructure as Code" にした。 この一年で Chef や Puppet にはずいぶんと注目が集まった。おそらく、AWS をはじめとするクラウドサービスがより広いユーザーに浸透したことで仮想化環境が前提になって、以前よりも頻繁にサーバーを構築し直したりする機会が増えたとかその辺がひとつ理由として挙げられると思う

    Infrastructure as Code - naoyaのはてなダイアリー
  • KarmaでTDD + Travis CI + Coverallsなイケてるワークフロー - はてブロ@ama_ch

    巷でAngularJSが盛り上がっているのを横目に、最近は黙々とKarmaを触っていました。Karmaはかなりよくできていて素晴らしいと思うんですが、具体的な使い方はあまり見ないので紹介したいと思います。 Karmaについて http://karma-runner.github.io/ Karmaはいわゆるリモートテストランナーです。リモートテストランナーというと、色んなブラウザでテストを走らせることが目的のように思えますが、そうではありません。Karmaは ワークフローの問題を解決すること に主眼が置かれています。なので、コマンドラインでテストを実行するほかに ファイルの変更監視 CIサーバとの連携 デバッグのサポート プラグインによる機能拡張 といった機能を持っています。実際に使ってみると、単にテストを実行してくれるだけでなく、ワークフローが劇的に変わることを実感できると思います。 K

    KarmaでTDD + Travis CI + Coverallsなイケてるワークフロー - はてブロ@ama_ch
  • Node.jsの開発を超速化するGitHub連携 三種の神器 - teppeis blog

    Node.js Advent Calendar 2013 - Adventar 9日目です。 あまりネタを用意する時間がなかったので、GitHubにNode.jsのリポジトリを置いたりnpmにパッケージを公開したりしたときに便利な定番サービスを3つ紹介します。 Travis CI Coveralls David タイトルは釣りですが、特にTravisとCoverallsは一度体験すると離れられないぐらいほんとにlife changing。コードをpushしたらブランチのビルド結果をプルリクに表示してくれたり、カバレッジ結果をコメントで書き込んでくれるので、それを見ながらコーディングを進めていけます。これが無料なのは意味不明なぐらいの神です*1。 サンプルコードはこちらのプロジェクトで見てください。 Github: https://github.com/teppeis/fixclosure

    Node.jsの開発を超速化するGitHub連携 三種の神器 - teppeis blog
    learn
    learn 2013/12/11
    Jenkinsのフリーホスティング版といえば、https://buildhive.cloudbees.com/ のような
  • CI で稀に失敗してしまうテストへの対処方法 - クックパッド開発者ブログ

    技術部の福森です。 クックパッドでは RSpec と Jenkins を利用して CI による自動テストを行なっています。 テストの数は 12000 examples を越えていて、テストによっては稀に失敗する物が出てきています: 時間帯依存で失敗してしまうもの 他に同時に実行されるテストに依存しているもの (並列実行で組合せが変わり再現する) インテグレーションテストでの ajax リクエストの微妙なタイムアウト etc また、番環境を壊さないよう、 CI で成功したリビジョンのみデプロイ可能となっており、開発者が push しデプロイしたいと思っている時に無関係な原因で失敗する事を避けたいという欲求があります。 なぜなら、再度ビルドを実行する時間 (およそ 10 分) の間待たされる事になるからです。 そこで、そのようなテスト起因での失敗を減らし、かつ開発者にそれらを修正してもらうた

  • 「CIを半年間まわしてみて」というお題でLTをしてきました - kaz29

    大分時間も経ってしまい今更ではありますが、先日行われた第67回 PHP勉強会で「CIを半年間まわしてみて」というお題でLTをしてきました。 昨年の11/30に、当時ちょうど開発が始まった案件の開発環境に関して「今時なCakePHPでの開発環境!?」というエントリーを書いて、初のホッテントリ入りしました。4月末でこのプトジェクトが始まって半年という事で、実際にCIをまわしている中で起こった事や、試行錯誤しつつどうやって解決したかなどを簡単にまとめてお話ししました。 LT用に作った資料ではちょっと伝わりにくいので、以下にまとめ直しました。 成長の軌跡 Jenkinsサーバーを立ち上げた時は、UnitTestのテストケースが10個だけだったのですが、4/30現在 UnitTestのテストケースが467件、受入れテストのシナリオ数が292件とものすごい成長っぷりです。 この半年間に起こった事 テス

    「CIを半年間まわしてみて」というお題でLTをしてきました - kaz29
  • Vagrant + Chef Solo + serverspec + Jenkins でサーバー構築を CI - naoyaのはてなダイアリー

    Jenkins おじさんと戯れること半日、うまくいったので備忘録を残しておく。 やりたかったのは Chef で構築したサーバーを Jenkins で CI する、というもの。このときサーバーはテストが終わる度に破棄して、テスト開始時に再度真っ新な状態から立ち上げたい。(こういうサーバーを壊して作ってというテストはなんという名前で呼ばれるのだろう?) 仮想サーバーを破棄/作成をプログラマブルにやるのはもちろん Vagrant プロビジョニングは Chef Chef の環境を整えるのに knife-solo 0.3.0.pre3 テストは serverspec コードは Github に上げる (https://github.com/naoya/jenkins-vagrant-test) CI は Jenkins という構成になっている。ひとまず Jenkins や Vagrant はローカル

    Vagrant + Chef Solo + serverspec + Jenkins でサーバー構築を CI - naoyaのはてなダイアリー
    learn
    learn 2013/05/21
  • スローテストを解消する12の方法

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) みなさんこんにちは。@ryuzeeです。 システム開発において一番コストが高いものは人的リソースであることがほとんどです。 したがって開発者の時間効率をあげるためにできることは色々と取り組む必要があります。 例えば個人の開発マシンが遅くてビルドやテストに時間がかかるとかもっての他です。 一日10回ビルドして一回のビルドに5分かかるとします。 これを高性能なマシンに変えたら2分になったとすると、(5-2)1020=10時間。 時間単価5000円として一ヶ月あたり合計50000円の節約になります。 同じことがCIやテスト自動化にも言えます。 CIサーバのハードウェアを高性能なものに変更する会社のあまったPCを使ったりして遅いテス

    スローテストを解消する12の方法
  • CI as a Service ブラウザを使ったJavaScriptのテストをCIサービスで動かす方法のまとめ

    Travis CIを始めとするウェブサービスとして使えるCIを使って、 JavaScriptのブラウザテスト(ブラウザ上でJavaScriptを走らせて行うユニットテスト)をやる方法をサービスごとにまとめてみました。 テストフレームワークとして Buster.JS を使用して行います。 Karma (旧Testacular) では公式サイトにも Karma – Travis CI でCI Serviceとの連携方法が記載されているのでそちらも参考にして下さい。 今回紹介するCI Servicesは以下のものです。 Travis CI drone.io BuildHive Jepso CI テスト実行の流れ Jepso CI を除いては、テスト実行の流れ自体は同じなので先に解説します。 Capture用のローカルサーバを立てる テストしたいブラウザで capture URL へアクセスする

    CI as a Service ブラウザを使ったJavaScriptのテストをCIサービスで動かす方法のまとめ
  • 複数プロジェクトがある場合のビルド環境 - @ikikko のはてなブログ

    環境依存の情報の管理やHudsonのジョブ設計など - watawata日記に触発されて。自分もちょうど考えてることがあったのですが、140字ではとても足りないのでブログにまとめてみます。 ちなみにJava開発の話です、はい。 前提 「ビルドスクリプトは、IDE/CIに依存しないこと」が大事だと考えています。(Java開発においては)IDE上で開発する方が大多数だと思いますが、コマンドプロンプト・シェルスクリプト上でビルドできて、かつCI上でも同様に実行できること。これがビルド環境を考える上で大事なことですね。 プロジェクトの分類 ここでは、2つの要素でプロジェクトを分類します。 依存ライブラリ管理の仕組みが有るか? IDE上で、プロジェクト間での直接参照が有るか? 依存ライブラリの管理というのは、平たく言えばMaven/Ivyを導入しているか?ということです。IvyはAntベースで、Ma

    複数プロジェクトがある場合のビルド環境 - @ikikko のはてなブログ
  • Buildbot で継続的インテグレーション - mixi engineer blog

    こんにちは。パートナーサービス部の加藤和良です。 前回、mixi における開発者テスト について説明しました。だいぶ間があいてしまいましたが、今回は、そのテストを定期的に実行する 継続的インテグレーション の仕組みを紹介したいと思います。 テストが遅い 実は、mixi のテストは「遅い」という大きな問題を抱えています。 Micheal Feathers は『レガシーコード改善ガイド』のなかで、単体テストが高速に実行できることの重要性を解き「単体テスト」を厳しく定義します。 次に当てはまるものは単体テストではない。 データベースとやり取りする ネットワークを介した通信をする ファイルシステムにアクセスする 実行するために特別な環境設定を必要とする (環境設定ファイルの編集など) 上記に該当するテストが悪いというわけではない。多くの場合において、そのようなテストを書く価値はあり、しばしばテスト

    Buildbot で継続的インテグレーション - mixi engineer blog
  • 1