2017-11-03 9 views
0

JenkinsのGitHub Organizationオブジェクトで使用するJenkinsfileを作成しました。 Jenkinsfileの一部はエラー修正であり、しばしばプロジェクトを変更します。パイプラインの最後で、Jenkinsはgitリポジトリへの変更をコミットします。同じジョブでgit pushによって引き起こされるJenkinsビルドを防止する

これまで私はすべての作業を行っていましたが、訂正をリポジトリにプッシュすると、ウェブフックによってトリガされるため、エラーを実行して修正した同じジョブが再び実行されることに気付きました。最初の実行後にエラーを修正する必要はないので、無限ループではありませんが、必要以上に時間がかかります。

パイプラインにデプロイメント・ステップが含まれているため、ジョブによってトリガーされた変更が問題になることは事実です。同じコードを2回続けて再デプロイすると、パイプラインが正しく書かれていないと感じられます。つまり、キーワードの最後のコミットメッセージを検索するのに手間がかからず、ジョブをコミットしないようにするための良い方法を見つけることができません。この問題を解決するには、よりハッキリな方法はありますか?

編集:私はci-skipプラグインを認識していますが、宣言的パイプラインで動作させるためのドキュメントはありません。私は、ビルドの開始時にデフォルトのscmチェックアウト手順で何かをさせる方法を好むでしょう。

編集2:パイプラインがメッセージに[ci skip]というテキストが含まれているかどうかを確認するたびに、最後のコミットメッセージのgrepを実行するだけでした。その汚れているが、それはパイプラインのセットアップ段階に配置されている場合は動作します。

答えて

-1

git repoをチェックアウトする設定では、特定のコミットメッセージを無視するように指定することができます(高度なチェックアウトの動作)。しかし、githubのorgジョブが同じことをすることができるかどうかはわかりません。

また、変更が特定のディレクトリに限定されていて、そのディレクトリが通常は変更されない場合は、特定のディレクトリを無視することもできます。再度、github orgがこれをサポートしているかどうかは分かりません。

ウェブフックトリガーを使用しないでください。これは推奨されるオプションではありません。

+0

悲しいことに、このタイプにはジョブレベルの設定はありません。これは、orgのすべてのreposをスキャンし、Jenkinsfileを使用している場合は、その(宣言的な)Jenkinsfileに従ってジョブを設定します。 – eloucks

関連する問題