2017-02-14 11 views
0

jenkinsでパラメータ化されたビルドを実行して、いいえを数えます。 1つのファイルパラメータを持つファイル内の行の数。そのファイルの場所はpqrです。スクリプトファイルの名前は、リモートサーバーに保存されているlinecount.shです。コマンドsh linecount.shを使って実行しようとすると、ジェンキンズから完全に動作します。しかし、私は、引数からファイル名を削除し、それがコンソールにエラーの下に表示されるパラメータ化ビルドと同じスクリプトを実行すると:私は私のローカルマシンからファイル(parameterBuild.txt)をアップロードしていますjenkinsでファイルパラメータを使用する方法

Started by user Prasoon Gupta 
[EnvInject] - Loading node environment variables. 
Building in workspace users/Prasoon/sample_programs 
Copying file to pqr 
[sample_programs] $ /bin/sh -xe /tmp/hudson3529902665956638862.sh 
+ sh linecount.sh 
PRASOON4 
linecount.sh: line 15: parameterBuild.txt: No such file or directory 
Build step 'Execute shell' marked build as failure 
Finished: FAILURE 

。なぜこのエラーを出すのですか?

私の疑問はシェルスクリプトにあります。引数は$1です。ファイルをパラメータとして受け取っているとき、これをどのように参照することができますか。

+1

例えば、あなたがワークスペースに期待するとして、パラメータ・ファイルが挿入されていることを確認してくださいあなたのシェルコマンドで 'ls -l'を実行してください。 –

+0

ありがとうございます。私はローカルマシンから直接アップロードしたいと思っています。自分の仕事をより使いやすいものにしたいと思っています。 –

+0

はい、それを理解してください。しかし、問題を特定するために、ジョブ設定でシェルコマンドの一部として 'ls -l'を実行するとどうなりますか?例えば。そこに 'parameterBuild.txt'や他のファイルがリストされていますか? –

答えて

9

アップロードされたファイルは、ローカルコンピュータと同じ名前を保持しません。 enter image description here この例では、自分のコンピュータ上で何を呼び出すかに関係なく、ワークスペースのルートにfile.txtというファイルがあります。この例では、file.txtというファイルが作成されます。 は、だから私は今、私の仕事を構築し、パラメータダイアログに次のように入力した場合(私のローカルファイル名がtable.htmlであることに注意してください):

enter image description here

それから私は(私がビルドを持っているログに次を取得しますls -lを行うステップ):例えば、file.txtと呼ばれる

Building on master in workspace /var/lib/jenkins/workspace/fs 
Copying file to file.txt 
[fs] $ /bin/sh -xe /tmp/hudson845437350739055843.sh 
+ ls -l 
total 4 
-rw-r--r-- 1 jenkins jenkins 292 Feb 15 07:23 file.txt 
Finished: SUCCESS 

注意今table.htmlこと私がFile locationと入力したもの。あなたはケースだで

ので、コマンドは次のようになります。

sh linecount.sh pqr 
+0

ああ私の神!これは論理です..ありがとうございました。あなたがこれを言わないなら、私はsh linecount.shに決して論ずるつもりはありません。私が考えていることは、ローカルマシンからアップロードしたファイルを引数として取ることです。 私のコンセプトをクリアしていただきありがとうございます。 –

+1

この問題は解決しました。将来的には他の人に役立つように自由に回答してください。 –

+0

@JonS説明をありがとう。ジョブAからの追加で、リモートサーバーでジョブBをトリガーしたいと思っていました。ジョブBはパラメータ化され、ファイルを入力として受け取ります。パラメータ化リモートトリガープラグインを使用します。ジョブAの外部ファイルフィールドからファイルをロードする際にファイルを渡すと、ジョブBで正しく読み込まれません。 – Santhosh

関連する問題