« 2012年11月 | トップページ | 2013年1月 »

2012年12月

2012年12月30日 (日)

2012年まとめ

ALM Advent Calendarが終わり、すっかり気が抜けてますw

早速ですが、今年のまとめをば。
○今年やったこと
・TFSUGでまさかのスピーカー
 TFS初心者があんな場所で話をすることになるとは思ってませんでした。(;´∀`)
 
 PowerToolsとかについてでしたが、MSSCCIに対する反応があったのは意外でした。
・ヒーロー島でまさかのスピーカー
 なんと2ヶ月連続でスピーカーですよ!
 
 TFSの導入例みたいな感じで簡単にお話させていただきました。
・Visual Studio 2012/TFS 2012発売
 Beta版から使ってみてますが、「使いやすさ」が強化された印象。
 あと、自動テスト系の機能を使い始めてます。
・ヒーロー島でTFS Day
 マイクロソフトの長沢さんに広島にお越し頂き、熱いセッションを行っていただきました。
 また、西日本初だと思いますが、TFSハンズオンを開催しました。
 
・ALM Advent Calendar参加
 今年も小ネタで参加させていただきました。
・CLR/Hカソウ化デイ参加
 ついに勉強会で北海道まで遠出してしまいました。
 食べ物美味しいですし、内容もむちゃくちゃ濃かったです。
 来年も行きたいですね。

○来年やりたいこと
 ・会社でのTFS利用率をもう少し上げる
  現状、単なるバージョン管理としてしか使用してないので。
 ・.NETのお勉強
  そろそろデベロッパーの力がなくなってきた気がするので、再度チャレンジ。
 ・自動テストのお勉強
  基本の「き」ぐらいは習得したいです。
 ・社内勉強会
  周りのスキルアップをしないと、自分だけ勉強しても仕事は楽にならないので。

TFSUG関連(開発プロセス系)でいろんな方とお会いでき、たくさん勉強できたような気がします。

今年もいろんな方にお世話になり、ありがとうございました。
また来年もよろしくお願いします。m(__)m

2012年12月23日 (日)

1つのチームプロジェクトで複数言語を使用した場合のゲートチェックイン TFS2012 Update1版

ALM Advent Calender」22日目への参加記事になります。

以前に
・「1つのTFSプロジェクトで、.NETとJavaの共存は可能か?
で、1つのチームプロジェクトでJavaと.NETプロジェクトのそれぞれに対してゲートチェックインを設定した場合の動作について記載しましたが、TFS2012 with Update1で改めて確認してみました。

今回、少しだけパワーアップして、
 ・Native C++プロジェクト
 ・C#プロジェクト
 ・Javaプロジェクト
の3つを1つのチームプロジェクトとして登録し、それぞれのプロジェクト用にゲートチェックイン用のビルド定義を作成しました。
010

011

最初はC#プロジェクトでチェックインを実行します。
012
なぜか、ビルド定義の選択肢に「CI-Build-CPlus」がありません。
「CI-Build-CSharp」を選択して実行すると、正常にビルドが実行されました。

次にNative C++プロジェクトでチェックインを実行します。
013
今度はビルド定義の選択肢に「CI-Build-CSharp」がありません。
「CI-Build-CPlus」を選択して実行すると、こちらも正常にビルドできました。

最後にJavaプロジェクトでチェックインを実行します。
014

???、対象のビルド定義が「CI-Build-Java」のみです。
このまま実行すると、正常にビルドできました。

ということで、結論は「複数言語を使用した場合のゲートチェックインでも問題ない」ですが、ビルド定義の選択条件についてはよくわかりません。
→修正した(シェルブ対象となった)ファイルが格納されているフォルダと、その上位(親とか)のフォルダをビルド対象とするビルド定義が選択肢に上がっているような気がしますが、確認できる情報が見つかってません。

2012年12月17日 (月)

CLR/H カソウ化デイに参加してきました

12/15、北海道の有名なコミュニティであるCLR/Hさんが年1回開催するカソウ化ディに参加してきました!

せっかくの機会なので、前日の金曜に休暇をとってゆっくりと移動。
(単に、直行便の時間に合わせたというだけですが)
お昼は空港の回転寿司。
Dsc_0059
(この画像で、一部の方にはどの店で食べたかがバレました)

その夜には一部の方々と一緒に前夜祭。
Dsc_0066
なぜか、ここでLT参加が決定。
この後、とある方に連行され深夜まで熱い前夜祭。

当日は当然午前中から参加。
他の皆様のセッションの凄さとは裏腹に、自分のLTはグタグタになってしました。m(__)m
LTは、以前にブログに上げた「TFService+デスクトップクラウドで自動ビルドまでできます」にしました。(資料はShlideShareにあげました。)

CLR/Hさん恒例のおやつタイムも豪勢でした!
Dsc_0074
これ、すごくおいしかったです!!

その後の懇親会で出てきた寿司も美味しかった。
Dsc_0089
(前日に食べたところと同じ店だったのは内緒ですw)

打ち上げ(反省会?)にも参加させて頂き、この日も午前様でした。
この2日間、とっても楽しく参加させて頂きました。
この場を借りて、スタッフの皆様、参加された皆様に感謝します。

なんか、「食べ物美味しかった」しか感想がないように見えますが、久しぶりにお会いできた方、初めてお会いできた方、内容の濃いセッションなどなど、本当に充実したイベントでした。

流石に度々行くことは(資金的に)できませんが、また来年も行きたいです!!

2012年12月13日 (木)

ビルド定義のワークスペースで警告が出るのは?

ALM Advent Calender」13日目への参加記事になります。

TFS2012とVS2012をUpdate1環境にしたところ、今までは怒られなかったビルドで警告が出てました。
005
「格納フォルダーをクロークする必要があります。」と出ています。
ちなみに、クロークは「除外」のことです。
除外しろと言われてもどこを...??

とりあえず、メッセージに記載されているリンク先を参照してみます。
英語にページに飛びますが、右上の言語を「日本-日本語」に変更すれば日本語ページに移動できます。
すると、こんなことが書いてありました。
006
「必要なフォルダーをすべて含める」のはいいとして、「必要なフォルダーのみを含める」と言われても、必要でないフォルダーって??

念のため、ビルド定義を見ると、
007
RTM版ではエラーになりませんでしたが、Update1では「入力が必要である」という警告になっていました。

無い頭をひねってみましたが考えても何も思いつかないので、新しいビルド定義から学ぶことにしてみました。
008
なんと、最初から「クローク」状態の定義が追加されています!!

ということで、結論は「RTM版でデフォルトのままビルド定義を作成したものをUpdate1に移行した場合、ワークスペースの定義にクローク対象を追加する必要がある」ということです。(「警告メッセージを無視する」という手もありますが、警告とはいえエラーをそのままにするのは精神衛生上よくないかと)

ちなみに、クローク対象として「/[プロジェクトフォルダ]/Drops」が追加されていますが、これはクラウドで稼働しているTeam Foundation Serviceを使ったチームプロジェクトでビルド定義を作成した場合、ビルド出力を格納するフォルダーになります。
009

個人的な想像ですが、Team Foundation Serviceのビルド定義で「Drops」フォルダを含めた場合、ビルドに必要のないファイル、しかもある程度大きなファイル(.exe/.dllなど)がビルドサーバに転送されることになり、ビルド実行速度/リソースに影響があるのでこの制約が追加されたのではと思います。

オンプレミス環境では「Drops」は使用しないと思いますので、何も考えずにクローク対象として「Drops」を追加しても問題ないと思います。

2012年12月 4日 (火)

TFSからAnt実行時に設定される変数の確認方法

ALM Advent Calender」4日目への参加記事になります。

「Microsoft Visual Studio Team Foundation Server 2012 Build Extensions」を使ってAntのBuild.xmlを記述するときに、ビルドに関する情報を使いたい時があります。
(ビルド時のフォルダとか、ビルド時に採番された番号など)

Antの中でechoを使って出力してもいいのですが、ビルド実行時のパラメータを変更することで簡単にログへ出力することができます。

事前にAntを実行するビルド定義を作成し、作成したビルド定義をVisual Studio Shellから実行する時にパラメータを一部変更します。
「パラメータ」タブを選択し、「ログの詳細度」から"Detailed"か"Diagnostic"を指定してから実行します。(ここで指定した内容は1回だけ適用されます)
001

ビルドが終了すると、ログにAnt実行時のコマンドラインが出力されます。
002

コマンドライン引数の中で、「-D」で指定されているものがTFSからAntに渡される情報になります。(-D[パラメータ名]=[値]という形式です)

使用例としては、「BuildNumber」をJarファイルのメタ情報として埋め込んでおけば、後でどのビルドで生成したものかが簡単に判別できます。
003

注意点ですが、残念ながらEclipse+Team Exploere Everywhere(TEE)からではこの手順が使えませんので、Visual Studio Shellから実行してください。
(Eclipseから実行した場合、「パラメータ」タブがありません。TEEを使用するためにVisual Studio Shellは必須ではありませんが、1環境に1台ぐらいはインストールしておいたほうが便利だと思います。)

« 2012年11月 | トップページ | 2013年1月 »