S・ジャクスン『処刑人』
- 作者: シャーリイ・ジャクスン,市田泉
- 出版社/メーカー: 東京創元社
- 発売日: 2016/11/30
- メディア: 文庫
- この商品を含むブログ (3件) を見る
文体は読みやすいし表現はうつくしいし、空想に没入しがちの主人公の懊悩の過程は読んでいてたのしいのです。そしてウルフの作品みたいに作品全体に妙な緊張感もあります。それにしても、比喩表現と仄めかしと空想世界の描写が渾然一体となっており、巻末の解説を読んでやっと得心した箇所もままあり。私には難しい作品でした。
Visual StudioソリューションをTravis CIでビルド&テストする
Travis CIはGitHub上のGitリポジトリでバージョン管理されているプロジェクトのコードに対して、PushやPullリクエストをトリガーにして自動的にビルドやテストを実行して結果をログしてくれるサービスです。OSSのプロジェクトに対しては無償、それ以外のプロジェクトに対しては有償でサービス提供しています。Travis CIについてはまだ日本語ドキュメントは少ないようですがその概要や利用方法はこちらのページなどで取り上げてくれています。
今回、これまでこのブログ上で紹介してきたいくつかのC#プログラムのGitリポジトリをこのTravis CIに接続してみました。その手順をメモしておきます。
NOTE: Travis CIはビルドの実行にDebian系Linux仮想マシンを利用しているようです。当然ビルドはMonoにより行われます。よってWindows OSの.NET Frameworkでしかビルドできない構成のソリューションはTravis CI上でビルドできないはずです。Xamarin StudioやMonoDevelopにより作成・メンテ・動作確認されているVSソリューションであれば問題ないと思いますが、VSにより作成・メンテ・動作確認されているものの場合はビルドできない可能性があると思います。
#1. Travis CIにサインアップする
Travis CIのサインインはGitHubアカウントを使ったOAuth認証で行われます。トップページの[Sign Up]をクリックすると、GitHubのOAuth認証・認可ページに遷移します:
[Review permissions]欄でTravis CIに許可される機能をチェックしてください。[Organization access]欄にあなたが参加している組織リポジトリの一覧が表示されている場合は、ここで同じようにTravis CIのアクセスを許可するかどうかを選択できます。[Authorize application]ボタンをクリックすると認証・認可が実行されます。
#2. 対象リポジトリをアクティベートする
OAuthの認証・認可が終わるとTravis CIのページに戻されます。この記事を書いている現在(2016年12月)ではサインイン後のトップページは以下のような画面になっています。あなたがGitHub上で管理しているリポジトリが左側のペインに表示され、右側には個々のリポジトリのステータスが表示されるレイアウトです(各リポジトリ=プロジェクトのビルド結果次第で表示カラーやテキストは変わってきます):
左側のペインでTravis CIで継続的インテグレーションの対象にしたいリポジトリ名を選択(クリック)します。すると右側のペインにそのステータスが表示されます。
この表示の右上に[More options]というドロップダウンリストがあります。このリストから[Settings]を選択(クリック)します(ドロップダウンリストから選ばなくても、ステータス表示画面のタブのなかに[Settings]が存在するかもしれません):
設定画面が表示されるので[General Settings]で以下の項目をONにしておきます。画面での変更は即座に保存されるようです。これでアクティベートは終わりです:
- Build only if .travis.yml is present
- Build pushes
- Build pull requests
#3. プロジェクトに.travis.ymlファイルを追加する
Travis CIに対してプロジェクトで使用している言語やビルド前後に実行させたいスクリプトを指定するため、 .travis.yml というファイルを作成してプロジェクトのルートに保存します。このファイルにはCIのために用意された仮想環境(Debian系Linuxみたいです)のシェルで実行させるコマンドを記述できます。
数年前までC#はTravis CIでサポートされておらず、このymlファイルの中でオープンソースのCLR実装であるMonoをインストールするコマンドまで記述する必要があったようです。が、現在はさすがにそこまでする必要はなく、ただNUnitなどテストランナーの準備についてだけ特別な考慮が必要という状態のようです(こちらの記事にそのような記述がありました)。
ともかくも、Visual StudioのC#プログラムのソリューションをTravis CI上でビルド&テストさせるため、こちらのブログ記事 "Setup Travis CI to compile a C# project and run NUnit tests" を参考に.travis.ymlファイルを作成します:
language: csharp script: - xbuild /p:Configuration=Debug (ソリューション名).sln before_install: - sudo apt-get install nunit-console before_script: - nuget restore (ソリューション名).sln after_script: - nunit-console (テストプロジェクト)/bin/Debug/(テストアセンブリ).dll
参考までに、 "Tac.MetaServlet.Client" のために作成したymlファイルの内容を掲載しておきます。このソリューションには3つのテストプロジェクトがあるので、yml末尾のテストコードを含むアセンブリの記載が複数行になっています:
language: csharp script: - xbuild /p:Configuration=Debug Tac.MetaServlet.Client.sln before_install: - sudo apt-get install nunit-console before_script: - nuget restore Tac.MetaServlet.Client.sln after_script: - nunit-console Test.Tac.MetaServlet.Rpc/bin/Debug/Test.Tac.MetaServlet.Rpc.dll - nunit-console Test.Tac.MetaServlet.Client/bin/Debug/Test.Tac.MetaServlet.Client.dll - nunit-console Test.Tac.MetaServlet.V56.Client/bin/Debug/Test.Tac.MetaServlet.V56.Client.dll
npmベースWeb開発に関する素朴な疑問
きょうは何の益もない徒然なるままに書き綴っただけの投稿です。
前回の記事で取り上げたようなことをするたびに疑問に思うこととして、npmベース開発──npmやGulp/Gruntといった周辺ツールを用いたWebアプリケーション開発において、JavaScriptやCSS、そこから呼び出される画像ファイルなどの各種リソースの実行時依存性の解決はどうなっているんだろうか、ということです。
「どうなっているのか」というのは、そうしたタスクを自動化するデファクトな手法がすでにあるのか、ない場合皆さんはどんなふうな工夫をしているのだろうかということです。例えば「BootstrapのJavaScriptやCSSやフォントをWebアプリの各画面からロードする」というとき、「"node_modules/bootstrap/dist"配下のサブ・ディレクトリをごっそりコピーして、そのコピー先のパスを参照する<script/>タグや<link/>タグを各HTMLファイル内に書き込みます」という身の毛もよだつような手仕事をしているのか、それとももっとクレバーな方法が実践されているのか。
JavaやC#の世界とは使用する言語がちがいすぎるのかそれっぽいキーワードで検索してもそこら辺の情報がちっともヒットしません。私のGoogle先生に対する質問スキルの問題でしょうか。前回記事で取り上げたBrowserify(JavaScriptの実行時依存性を自動的・静的に解決してくれるパッケージ)にしても完全に偶然の発見でした。なんというかとても不思議な気分です。