2017-05-22 2 views
0

一つは、「ビルドの名セッター」と呼ばれるプラグインを使用してジョブの説明やのdisplayNameで"#${BUILD_NUMBER}|${BRANCH_NAME}" を表示一部のフリースタイル・ジェンキンスの仕事を持っています。カスタマイズされたdisplayNameをJenkinsのパイプラインジョブに設定するにはどうすればよいですか?私の顧客の

残念ながら、このプラグインはフリースタイルの仕事で正しく動作します。

enter image description here 私は同じ目標を達成したいが、ジェンキンスのパイプラインジョブを使用したい。

currentBuild.displayName = "#${BUILD_NUMBER}|${BRANCH_NAME}" 

しかし、私は「BRANCH_NAME」が設定されていないというエラーを取得しています:

私はちょうどチェックアウトのステップの後に、次の行を追加しようとしました。私はクローンだリポジトリはTFS-Gitのリポジトリであり、それがこの機能を持っていないプラグインだから

は、私が「SCMのステップ」ではなく、専用のプラグインを使用する必要があります。

これは特にパイプラインジョブでのSCMステップの動作の既知の問題ですが、この情報をジョブのページに表示するために実装できる回避策が見つかったのかどうかは疑問でした。

答えて

0

私は@haschibaschiが提案するものに非常に近い何かをすることによってそれを解決したが、私の場合は私がでGroovyのファイルにBRANCH_NAMEを書きましたBRANCH_NAME変数にロードしました。

stage ('Checkout SCM') { 
      checkout([$class: 'GitSCM', branches: [[name: '*/feature/*']], doGenerateSubmoduleConfigurations: false, extensions: [], url: 'http://TFS_SERVER:8080/tfs/DefaultCollection/PC_International/_git/project']]]) 
      bat """ 
       cd %workspace% 
       set branch="git rev-parse --abbrev-ref HEAD" 
       FOR /F "tokens=*" %%i IN (' %branch% ') DO SET BRANCH_NAME=%%i 
       echo %BRANCH_NAME% > BRANCH_NAME.groovy 
      """ 
      BRANCH_NAME = readFile('BRANCH_NAME.groovy') 
      currentBuild.displayName = "# ${BUILD_NUMBER} | ${BRANCH_NAME}" 
     } 

が今の関連情報は、ビルドの名前として表示されます:あなたの応答のための enter image description here

0

だけ手動でブランチ名を取得し、BRANCH_NAMEに割り当てます。このような

サムシング(コードの検証を行っておりません):

dir("checkoutdir") { 
    BRANCH_NAME = sh (
    script= "git branch | grep \* | cut -d ' ' -f2'", 
    returnStdout: true 
    ).trim() 
} 
echo "branchname: $BRANCH_NAME" 
+0

おかげで、私はそれが窓のジェンキンススレーブ上で実行していることを言及するのを忘れてしまいました –

関連する問題