我最近更新了我的應用程序,以便爲其所有依賴項使用作曲家。作爲其中的一部分,我已經更新了我的部署腳本 - 一組Grunt任務和一個批處理文件 - 在執行「git pull」之後包含「composer update」。在Windows.bat文件中運行「作曲家更新」
但是,我發現雖然作曲家更新成功運行,但該行後面的其餘批處理文件中沒有任何命令運行。如果我將「作曲家更新」一行寫出來,其他所有內容都可以正常運行(但當然,我冒着過時/缺少依賴關係的風險)。
編輯: 完整的.bat文件。如果沒有作曲家更新行,它將完全運行 - 它會跳到部署過程的下一部分。
這將在\ versions \中創建一個新的帶日期戳記的文件夾,更新倉庫&更新作曲家依賴關係,在主repo文件夾中執行git checkout-index到新版本文件夾,使用xcopy將供應商文件夾複製到作曲家依賴到新版本(因爲它被git忽略),然後更新一些符號鏈接,包括IIS使用的\ current \ symlink作爲站點根文件夾。
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
set date=%mydate%_%mytime%
mkdir "C:\inetpub\appname\versions\%date%"
cd "C:\inetpub\appname\repository"
git pull origin master
composer update
git checkout-index -a -f --prefix="C:\inetpub\appname\versions\%date%\\"
cd "C:\inetpub\appname\versions\%date%\\"
xcopy /E /y /q "C:\inetpub\appname\repository\www\app\Vendor" "www\app\Vendor"
del /Q www\app\webroot\files
rmdir www\app\webroot\files
cd "C:\inetpub\appname\"
MKLINK /D "C:\inetpub\appname\versions\%date%\www\app\tmp" "C:\inetpub\appname_tmp"
MKLINK /D "C:\inetpub\appname\versions\%date%\www\app\webroot\files" "E:\appname_files"
rmdir current
MKLINK /D current "C:\inetpub\appname\versions\%date%\www"
appcmd recycle apppool /apppool.name:"Localhost"
請顯示一些代碼。 – 2014-10-10 23:17:37
添加.bat文件內容 – gazareth 2014-10-11 07:37:05