2016-11-11 35 views
1

質問が十分に詳細ではないが、私は自分の検索を最初にしたことを誓っています。パイプラインでJenkinsのワークスペースファイルにアクセスするscrpit

私は前の手順でSCM(git)から引き出されたファイルを処理する必要があるパイプラインスクリプトを持っています。 パイプラインに渡されるパラメータの1つは、すべてのファイルが存在するフォルダです。このフォルダにはサブフォルダが含まれている可能性があり、それらも処理する必要があります。

ので、例えば、私は私のフォルダは以下が含まれていてもよいパイプラインに ./my-folderパラメータを渡すことがあります。

./my-folder/file1.json

./my-folder/file2.json

./my-folder/subfolder/file3.json

my-folderディレクトリは、リポジトリクローン化されたDの一部となりますビルド段階を確実にする。

私はローカルに私のGroovyスクリプトを開発しましたが、私はこれに似た何かやっていた:

def f = new File(folder) 

をしかし、これはフォルダが異なる上にある間にコードがマスター上で実行されている与えられたジェンキンスでは動作しません。ノード。 大規模な調査の結果、Jenkinsでファイルを読み取るには2つの方法があることが分かりました。

  1. readFileを使用してください。これは問題ありませんが、すべてのファイルをロードするためにフォルダ全体とサブフォルダをスキャンする簡単な方法は見つかりませんでした。
  2. FilePathを使用してください。より多くのオブジェクト指向なので、これは私の好みの方法ですが、このクラスのインスタンスを作成する方法が見つかりませんでした。私がインターネット上で検索しているときに見たすべてのアプローチは、build変数を参照してください。私はそれがスクリプトに定義されていない理由を完全にはわかりません。実際に私は得ていますgroovy.lang.MissingPropertyException: No such property: build for class: WorkflowScript

私はそれ以外の場合は、私は詳細を追加することを願って願って願っています。

おかげで、

ニコ

答えて

0

は、私は、次のアプローチを使用して、フォルダの内容をスキャンするために管理している:files.txtで回線を介して

sh "find ${base-folder} -name *.* > files.txt" 
def files = readFile "files.txt" 

、その後、ループが開くように各ファイル。

問題はこれがtxtファイルに対してのみ機能することです。私はバイナリファイル(例:zipファイル)を開くことができません。readFile

関連する問題