使用Codeship部署项目的内置版本的正确方法是什么

时间:2016-05-02 07:43:15

标签: git continuous-integration continuous-deployment codeship

目前我的部署情况如下:

  1. 提交本地更改后,我在本地运行一个grunt任务,将项目构建到/dist文件夹中。

  2. 然后我把它们推到bitbucket。例如分支名称是功能/存款

  3. 在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'

  4. 我不喜欢这种方法,因为对我来说,部署Codeship构建的内容会更有意义。 Codeship运行npm install,我希望它运行我的grunt:build任务,然后将其部署到我的生产服务器。

    我发现article解决了类似问题并添加了导出CI_COMMIT_ID = $(git rev-parse HEAD)任务。但我只是没有完全意识到我需要在部署脚本中使用它。除了这个示例与heroku一起使用,而在我的情况下,我使用自定义部署脚本。

    我还发现了一个有用deployment scripsthis one的github仓库可能符合我的需要。

    但我想知道的是,如果我能够以与现在相同的方式从构建版本(Codeship构建的版本)中提取,但是 git pull origin develop应该是Codeship刚建立的git pull

1 个答案:

答案 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/ - 您可以从其中一个构建步骤中获得。