0

目前我的部署如下所示:

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

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

  3. 在 Bitbucket 中,我将功能/存款合并到开发分支中,Codeship 构建开发分支(运行测试),然后执行以下代码:

    ssh nodejs@12.345.67.891 'cd 项目/www; git结帐开发;git pull origin 开发;npm 安装;sudo monit restart project.app.js'

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

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

我还找到了一个带有有用部署脚本的 github 存储库,这个可能适合我的需要。

但我想弄清楚的是,我是否可以以与我现在相同的方式从构建版本(Codeship 构建的那个)中提取,但 git pull origin develop应该git pull来自 Codeship 刚刚构建的版本

4

1 回答 1

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

于 2016-05-08T21:13:33.140 回答