2016-05-05 8 views
0

Jenkins Job DSLを使用してすべてのプロジェクトのジョブを構築するシステムを継承しました。Jenkins Job DSLでJenkinsを設定する経験はほとんどありません。優しい。Jenkins Job DSL - ファイル内容の条件付き動作

これらのプロジェクトの一部は、Gradleプロジェクトです。グラデルジョブを作成する関数createGradleJob()があります。この機能では、プロジェクトのいくつかの機能に基づいて、ジョブのタスクリストを文字列として作成します。例えばmasterブランチからビルドされている場合は、 'publish'タスクを追加します。これらの条件付きタスクは、現在、プロジェクトのブランチ名、またはプロジェクトリポジトリ内の特定のファイルの有無に基づいて追加されます。

これらのファイルの一部の条件付きタスクリストに新しいタスクを追加します。具体的には、プロジェクトbuild.gradleファイルで特定のキーワードが検出された場合、特定のタスクをタスクリストに追加する必要があります。

だから、は、Jenkins Job DSLのファイルの内容をチェックし、それを条件式として使用する方法ですか?

私はシェル機能を使用して任意のシェルコマンドを実行できることを発見したので、私は、私はちょうどファイルをgrepすることができると思ったが、私は、この機能のためのドキュメントを見つけることができないので、私は明確ではありませんよどのように私は条件式でそれらを使用するように、コマンドの出力にアクセスすることができます。

私はtextFinder機能を発見したが、これは唯一、条件として結果を使用していないあなたは、テキストを見つけるか、見つけることができなかった結果として、ビルドに失敗(またはなど不安定なマーク)することができるように表示されます表現。

答えて

0

readFileFromWorkspaceのように聞こえます。ファイルの内容を文字列として返します。ファイルを読み込み、必要に応じてGroovyやJavaの文字列utilsを使用して文字列を解析するだけです。

あなたの質問からは明らかではありませんが、を生成しているジョブでチェックアウトするファイルを読み込んでいる場合、この機能は役立ちません。しかし、ファイルが既にワークスペースのどこかにある場合(つまり、シードジョブによってチェックアウトされたファイルの1つ)、うまくいくでしょう。

見つかったshellコマンドは、生成されているジョブに「シェルスクリプトの実行」ビルドステップを追加します。それは実際にそこでスクリプトを実行せず、Jenkinsがジョブを実行するときに実行する準備が整ったビルドステップにそのままパラメータの内容をコピーします。あなたの継続的な健全性のために

は、ここにJob DSL API Documentation

+0

おかげへのリンクである、これは上のスポットになります。 –

関連する問題