我最近更新了我的应用程序,以便为其所有依赖项使用作曲家。作为其中的一部分,我已经更新了我的部署脚本 - 一组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