シェル スクリプトを実行する Jenkins ジョブがあります。ビルドコマンドフィールドにスクリプトを直接配置すると、完全に機能します。しかし、スクリプトを .sh ファイルに入れてから、Build コマンド フィールドからそれを呼び出すと、次のようになります。
sh $sh_dir/deploy.sh $repo_dir $name $ref $env $site_dir
$sh_dir
は環境変数で、残りはジョブ パラメータです。機能しません。単純な最初のコマンドで失敗します
cd $1/$2
繰り返しますが、これはコマンド フィールドに直接入力すると完全に機能しますが、.sh ファイルに入力すると機能しません。.sh ファイル ジョブからの出力は次のとおりです。
Started by user anonymous
Building in workspace /var/lib/jenkins/workspace/deploy
[deploy] $ /bin/sh -xe /tmp/hudson6229756058999358596.sh
+ /var/lib/jenkins/scripts/deploy.sh /home/repos magento master live /home/sites
cd: 1: can't cd to /home/repos/magento
はい、ディレクトリは存在し、はい、所有していjenkins
ます。
私はこれを理解しようとして気が狂ってしまいます。
編集: deploy.sh の結果-x
:
Started by user anonymous
Building in workspace /var/lib/jenkins/workspace/deploy
[deploy] $ /bin/sh -xe /tmp/hudson3304816709711757032.sh
+ sh -x /var/lib/jenkins/scripts/deploy.sh /home/repos magento develop staging /home/sites
+ cd /home/repos/magento
cd: 1: can't cd to /home/repos/magento