目前我的部署情况如下:
提交本地更改后,我在本地运行一个grunt任务,将项目构建到/dist
文件夹中。
然后我把它们推到bitbucket。例如分支名称是功能/存款
在Bitbucket中我将功能/存入合并到开发分支和Codeship构建开发分支(运行测试),然后执行以下代码:
ssh nodejs@12.345.67.891'cd project / www; git checkout develop; git pull origin develop; npm install; sudo monit restart project.app.js'
我不喜欢这种方法,因为对我来说,部署Codeship构建的内容会更有意义。 Codeship运行npm install
,我希望它运行我的grunt:build
任务,然后将其部署到我的生产服务器。
我发现article解决了类似问题并添加了导出CI_COMMIT_ID = $(git rev-parse HEAD)任务。但我只是没有完全意识到我需要在部署脚本中使用它。除了这个示例与heroku一起使用,而在我的情况下,我使用自定义部署脚本。
我还发现了一个有用deployment scrips和this one的github仓库可能符合我的需要。
但我想知道的是,如果我能够以与现在相同的方式从构建版本(Codeship构建的版本)中提取,但是
git pull origin develop
应该是Codeship刚建立的git pull
答案 0 :(得分:0)
所以我最终只是将/dist
文件夹代码复制到生产服务器。
我从生产服务器中删除了git,并将/dist
文件夹添加到gitignore
。
Codeship运行所有命令,包括构建项目的命令,然后将其复制到生产服务器。非常快捷方便。
持续部署设置:
rsync -avz -e "ssh" ~/src/bitbucket.org/username/project/dist/ nodejs@11.222.33.444:/home/nodejs/project/www/dist
/src/bitbucket.org/username/project/
- 您可以从其中一个构建步骤中获得。