2016-10-27 1 views
2

jenkinsパイプラインプラグインがカスタムロケーションからjenkinsfileを選択してビルドを開始できますか?jenkinsのパイプラインプラグインのカスタムロケーションからJenkinsFileを選択

私はソースコードの中にjenkinsfileを残したくありません。ソースコードに変更がある場合。カスタムロケーションからのjenkinsfileを選択し、ビルドを開始する必要があります。

例:/ホーム/テスト/ jenkinsfile

+1

あなたがこれをやりたい理由を詳しく説明できますか?たぶん問題を解決する良い方法があります。 – Rik

+0

私はOPの動機を詳しく説明することはできませんが、Jenkinsが私たちが制御しない第三者のレポを監視するようにしたいと思ったときに、これを実行しました。レポをフォークしてJenkinsfileを追加したり、Jenkinsのジョブ自体にJenkinsfileの内容を指定する方法がある場合は、そのレポをフォークすることを避けることができます。 –

+0

ある場所にjenkinsfileを置いて、 - > load "/ home/test/Jenkinsfile"を使うことができます。これは、 "/ home/test/Jenkinsfile"のロード –

答えて

7

あなただけのカスタムの場所を置くことを試みることができるのコース(なぜそれができない私は見ていないでしょう)限り、ユーザーは読み取り権限があるとしてロケーション。

マルチブランチパイプラインの場合、noより大きい場合。インデックス付けはJenkinsfileの存在に基づいているため(Jenkinsfileを含むブランチのみが索引付けされます)

ビルドのロジックをリポジトリ内に持つという考えは、ソースと一緒にソース管理されているということです。あなたのソースで何かを変更すると、ビルドに影響します。特定のコミットにはすべてのロジックが組み込まれます。これをあなたのリポジトリの外に移動すると、ビルドロジックとリポジトリが同期しなくなる可能性が高くなります。

EDIT あなたは他のファイル

JenkinsfileをロードしますJenkinsfileを追加することでこの問題を回避することができます

load "/home/test/Jenkinsfile" 

は、しかし、私の知る限り、directorieesは、ワークスペースを基準にしています。だからdir("path/to/other/dir"){..}があればそれはジョブのワークスペースに対して相対的に実行され、あなたのスタティックJenkinsfileは非常に読みにくいものになります。

+1

ロードからjenkinsfileをロードします。私は私たちが独自のソースコントロールを使用しているため、ジーンズファイルを外部に保管していますが、ブランチングはgitと比べて非常に異なって動作します。svn ..、 –

関連する問題