@42withyou
2015-09-21T10:18:29.000000Z
字数 1535
阅读 420
git clone git@115.28.232.110:/srv/shipit.git
./shipit.sh new xxx
将会复制 shipit/default 到 ../ships/xxx
注意:现在的部署项目目录在 shipit 同级的 ships
---- ships/xxx|- backups # 线上代码备份|- overwrites # 要覆盖到检出代码的文件|- retains # 部署保留复用的目录们|- tmp # ship 工作目录|- config.ini # 配置文件
; 留空不执行 chown[user]group = wwwname = www; git or svn; git 不需要 branch[repo]; default: gittype = gitlocation = git@115.28.232.110:/srv/laravel-pro.git; svn 不需要。 default: masterbranch = develop[hook]; default: shipit.shhook = shipit.sh[dist]path = /Users/kezhong/test/wwwroot; default: project namename =; 备份时要删掉的[clear]files =folders = storage/framework/cache,storage/framework/views,storage/framework/sessions; 部署后备份下次复用的,用以加快 composer npm 等的安装速度[retains]folders = vendor,node_modules,public/bower_components
./shipit.sh up xxx
tmpoverwrites 到 tmpretains 下指定目录到 tmp(如果有)tmp 到 dist.path/ship_new_dateship_old_dateship_new_date 改为上线目录ship_old_date./shipit.sh rollback xxx [backupfile]
可选参数 backupfile,否则回滚 backups/last.txt 的版本,即最后一次版本
backupfile 到 tmptmp 到 dist.path/ship_new_date./shipit.sh
or
./shipit.sh help
示例程序:
#!/bin/bash# 确保命令执行正确,否则 exit 1 退出function assert_ok(){if [ "$1" != 0 ]; thenexit 1fi}composer update -ophp artisan route:cache || assert_ok $?php artisan config:cache || assert_ok $?php artisan clear-compiled || assert_ok $?php artisan optimize || assert_ok $?php artisan env || assert_ok $?npm install --g gulp || assert_ok $?npm install --g bower || assert_ok $?npm install || assert_ok $?bower installgulp || assert_ok $?chmod 766 storage || assert_ok $?chmod 766 vendor || assert_ok $?chmod 766 bootstrap/cache || assert_ok $?exit 0