2016-07-05 22 views
3

私はVSTSを使用しているCI環境にいるので、コミットコメントを取得して、彼をテキストファイルに設定したいと思っています。ここでVSTS/TFSビルドでGitコミットIDとメッセージを取得するには?

は私のビルドステップです: enter image description here

アイデアは、GITがアーティファクトフォルダに保存されているテキストファイルにコメントをコミットコピーすることです。その後、HockeyApp SDKを使用して、私はリレイズノートに自分のコミットコメントを設定します。

ファイルをコマンドライン操作で簡単にコピーできますが、コメントの取得方法はわかりません。

答えて

3

ビルド中に環境変数$(Build.SOURCEVERSIONMESSAGE)が設定されています。あなたのタスク入力に直接$(build.SOURCEVERSIONMESSAGE)を使ってアクセスできます。

powershellスクリプトまたはinline powershellスクリプトでアクセスしたい場合は、環境変数、つまりGet-Item Env:\BUILD_SOURCEVERSIONMESSAGE

次のスクリプトは、コミットメッセージを含むバイナリフォルダに新しいファイルcommit.txtを作成します。インラインタイプのPowershellタスクを使用してスクリプトを実行します。コマンドに続き

$message = (Get-Item Env:\BUILD_SOURCEVERSIONMESSAGE) 

$path = (Get-Item Env:\BUILD_BINARIESDIRECTORY).Value + '\commit.txt' 

echo $message > $path 

enter image description here

+0

あなたの例によると、私はコマンドラインで試しました。ツール= 'エコー'。引数= '' $(Build.SOURCEVERSIONMESSAGE) ">" $(build.binariesdirectory)\ $(BuildConfiguration)\ drop \ commitComment.txt "'私は次のエラーを受け取りました: '[警告]ファイル名は実行可能ファイルの絶対パスを示していません。 ' –

+0

私はそれがうまくいくとは思わない。 BuildConfiguration変数は使用できません。私が動作する例を定式化してみましょう。 –

+0

@XavierW。 VSTSで動作する答えに例を追加しました。それが動作するかどうか私に教えてください。 –

0

コミットコメントを取得し、Rest APIを介してテキストファイルに書き込むために、ビルド定義にパワーシェルスクリプトタスクを作成することができます。

+0

私はパワーシェルで非常に良いではありませんよ。 Power-shellとVSTSについて協議している例や記事がありますか? –

2

は、最新のIDをコミットし、コミットメッセージを表示します。

git log --pretty=oneline | head -1 
+0

これは実際には最も簡単な答えです。私のケースではBuild.SOURCEVERSIONMESSAGEが欠けていたので、単に "git log head -1"を使用しました。 – rolls

+0

これはOSに依存していますので、これを代わりに使うことができます: 'git log -1 --pretty = oneline' – Sawtaytoes

関連する問題