通常のコンパイル、ビルド、テストの実行などのタスク以外のビルド自動化中に、他の人が何をしているかを知りたいと思っています。
- コード ドキュメントの生成
- コード メトリクスを使用してビルドの品質を測定し、確立されたメトリクスに違反している場合はビルドを失敗させます。
通常のコンパイル、ビルド、テストの実行などのタスク以外のビルド自動化中に、他の人が何をしているかを知りたいと思っています。
すべての主要なアンチウイルスエンジンに対するウイルススキャンのために、実行可能ファイルをhttp://virustotal.comに送信します。
私たちのexeにはウイルスが含まれているとは思いませんが、誤検知が発生し、それを見つけた顧客になりたくない場合があります。8-)
ツイッターアカウントを持っているので、いつでもどこからでもステータスを確認できます
押されたときにビルドを起動するために接続した Staples easy ボタンがあります。
コードに散らばっている可能性のある TODO/FIXME などのレポートを作成します。
以下に、私が行ったこと、行うこと、または行う予定のいくつかのことを示します。
failblog.comからランダムな画像を取り出して、「ビルドに失敗しました」というメールに添付します。
問題のワークフローを自動的に進めます。
ビルドに関連するすべての JIRA の問題 (svn コミット コメントから判断) を収集し、JIRA でステータスをチェックするカスタム プラグインを Bamboo CI サーバーに作成しました。
ビルドが成功すると (そして実行中のサーバーにアプリがデプロイされると)、「ビルド待ち」ワークフロー ステージの問題は、自動的に「ビルド済みでテスト可能」ステージに進み、電子メールの送信がトリガーされます。問題に割り当てられたテスター。
これは、開発者がコードをチェックインしたときではなく、サーバー上で修正がライブで実行され、テスターが実際に何かを実行できるときに、テスターが問題通知メールを受け取ることを意味します。
Webサイトを直接デプロイして、デプロイメントサーバーをテストします。
作成するすべてのバイナリにデジタル署名を適用します。ビルドスクリプトはそれを自動的に行います。
SVG スプラッシュ スクリーンのバージョン番号を置き換えてから、 Inkscape でレンダリングします。
私が携わってきたさまざまなプロジェクトでは、最後にチェックインしたのは誰か、ビルドを壊したのは誰かという大規模な公開展示がありました。Build-o-maticでこれを行い、 Team Cityのビルドについて同じ情報を表示するようにTeam Piazzaを作成しました。
Web アプリがあり、パフォーマンス テストを行い、HTML/CSS 検証をテスト スクリプトに追加します。
マネージド コード:
ネイティブ コード:
Java 開発では、以下を使用します。
ハドソンも
BizTalk 2006 プロジェクトを構築します :)
ビルド時のタイムスタンプを各ビルドイメージに埋め込むのはどうですか?
<ItemGroup>
<StampFile Include="BuildTimestamp.cs"/>
</ItemGroup>
<Target Name="BuildTimestamp"
Outputs="@(StampFile)">
<Message Text="Building Timestamp..." />
<Touch
AlwaysCreate = "true"
Files="@(StampFile)" />
<WriteLinesToFile
File="@(StampFile)"
Lines='public static class Build { public static string Timestamp = "%(StampFile.CreatedTime)" %3B }'
Overwrite="true"/>
</Target>
これを拡張して、マシン名、月の満ち欠けなどを含めることができます。
私たちはたくさんのことをします:MSBUILDで
構成ファイルの更新について誰も言及していないことに本当に驚いています! ビルド スクリプトを使用して構築している環境に基づいて、構成ファイル b を更新します。これにより、connectionStrings と appSettings をすべて置き換えるのにかかる時間が少なくとも 20 分短縮されます。私たちが行うその他のことは次のとおりです。
バージョン番号を更新
する テスト サーバーに移動する
コード分析を実行
する ビルド ステータスを電子メールで送信する
データベース スクリプトを実行する
ここで回答の半分以上を読んでいませんが、これらのいくつかが「新しい」ものであることを願っています:
「checkstyle」 ( http://checkstyle.sourceforge.net/anttask.html ) を使用して、開発者がビルドする前に (正式に) レビューされず、新しくチェックインされる可能性があるコードのレポートを生成します。また、次のことを行ういくつかのカスタム タスクを作成しました。
他にもいくつかのタスクがありますが、それらは内部環境関連の設定に固有のものです。
Java の場合、Ivy を使用して不足しているライブラリを自動的に取得することもできます。たとえば、Hibernate を使用している場合、これらのライブラリをリリースに含める場合と含めない場合があります。
ビルドと SVN に自動的にタグを付け、アプリケーションを WebSphere アプリケーション サーバーにデプロイするビルド スクリプトがありました。
ここで何度も言及したバージョン管理、署名、テストなどとは別に、次のことも行います。
ビルド後のステップでテスト データベースをリセットします。
これらのファイルを使用して
この後、正しいスキーマ、中央データベースからのすべての固定データ、およびいくつかの追加のテストデータを備えた、クリーンなテストデータベースができました。
スキーマと固定データも同等のデータと SQL ファイルにあるとよいのですが、それは WIP です。中央データベースはまだありませんが、ソース管理されているはずです。
NDepend、Gandarme などの単体テストとコード分析ツールの実行。結果はCC.Netによって公開されています
ビルドサーバーでエラーが発生したかどうかを示すNabaztag /tagがあります。
私たちが行ったいくつかのこと:
他の差し迫った締め切りに取り組んだり、電子メールに追いついたりしています (ちょっと待ってください、それはクールでも興味深いものでもありません...) わかりました、私が実際に行っていることは次のとおりです: