TeamCityをCIサーバーとして使用しており、リリースをバージョン管理するための安全な(つまり、人為的エラーの可能性を最小限に抑える)方法を実装する方法を考えていますが、必要な労力も最小限に抑えられています。これまでのところ、以下が最も論理的であるように思われます。
- バージョンファイルを作成します(またはassemblyinfo.csを使用します)。バージョン情報は...の形式になります。このファイルは私のVCSにチェックインされます。
- TeamCityビルドを実行する
- TeamCityは、手順1からバージョンファイルを読み取り、個々の番号を選択して、対応するTeamCityビルドパラメーターを設定します(後で、nugetパッケージの作成やラベル付けなどに使用できます)。
- TeamCityは、最終的な「ビルドカウント」値を自動的にインクリメントします。
- TeamCityは、新しいバージョン情報をバージョンファイルに保存します(更新された「ビルドカウント」を使用)
- 次に、TeamCityは、残りのビルドステップ、ファイルのビルド、単体テストの実行、正しいアセンブリバージョンの設定などを実行します。
- TeamCityは最終的にファイルをVCSにチェックインします
この方法の利点は、古いリリースの修正を行う必要がある場合、バージョン番号が正しくなり、TeamCityが古いバージョンのファイルを操作して、通常どおりビルドカウントを増やすことができることです。これは、メジャー/マイナー/パッチバージョンを正しく更新していることを前提としています。これは、カスタムビルドダイアログを介してビルドするブランチを選択できるTeamCity7.1のまもなくリリースされる機能とうまく機能することを願っています。
私がこれまで読んだことから、この種の操作はTeamCityで可能であるはずですが、私たちは2人の衣装であり、多額の投資をする余裕がないため、これを修正するための最も簡単なルートを探していますNantまたはPowerShellのエキスパートになって、それが私たちの望むことを実行できない可能性があることを見つけるまでの時間。
だから私の質問を要約すると次のようになります:
- 私が提案していることは可能ですか?
- はいの場合、Nant、PowerShellなどの私の限られた経験を考えると、使用するのに最適なツールは何ですか(つまり、コマンドラインとスクリプトの経験が単純なDOS操作と少しのVBScriptにまで及ぶ人にとって最も早く学ぶことができます)
どんな助けでも大歓迎です。