我有一個運行shell腳本的Jenkins作業。當腳本直接放置在Build命令字段中時,它可以很好地工作。但是,如果我把劇本在sh文件,然後調用從Build命令字段罰款:詹金斯shell腳本在.sh文件中不工作
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
更改'/ tmp'腳本,以便它:'sh -x /var/lib/jenkins/scripts/deploy.sh ...'然後報告那個輸出。 'cd:1:...'部分很奇怪;通常,我希望看到'sh:1:...'。這可能有一些信息,但我不知道是什麼。我假設沒有'chroot'的東西......你可能會知道是否有。 –
問題已更新。我很困惑 –
嗯......我也是。輸出以「用戶匿名啓動」開始。問題很簡單,''/ home/repos/magento'上的權限不允許用戶匿名'cd'進入目錄'?也許可以在'cd'前面添加'id'(或者'id -a')腳本,也可以添加'ls -ld/home/home/repos/home/repos/magento'。 –