比方說,我在服務器/鉤夾兩個腳本:呼叫從一個git腳本勾
第一個啓動的日誌記錄和寫關於推進的基本信息:(後接收)
#!/bin/sh
read oldrev newrev refname
LOGFILE=post-receive.log
echo " push - Old SHA: $oldrev -> $newrev >> $LOGFILE
sh ./post-receive-logic >> $LOGFILE
二一個不實際的部署:(後接收邏輯)
#!/bin/sh
cd ~/proj
pm2 stop ~/proj/main.js
git --git-dir ~/proj/.git --work-tree ~/proj pull
npm install
pm2 restart ~/proj/main.js
echo "finished"
當我推提交,第二個腳本不會被調用:在工作樹沒有變化,沒有服務器被殺害並重新啓動,沒有具體的輸出到第二個腳本。
如果我手動撥打./post-receive-logic
,一切正常,服務器停止,文件被拉,服務器再次啓動。
我試圖把它不sh
,就像這樣:
./post-receive-logic >> $LOGFILE
,但沒有運氣。
我在做什麼錯?
這兩個腳本的權限是否相同? – houtanb
您是否嘗試使用腳本的完整路徑? – houtanb
@HBHB OH我沒有想到,sctipts是從repository root調用的,我應該寫'./hooks/post-receive-logic >> $ LOGFILE'。 – amdc