2

我正在尝试通过 CodeShip 将网站部署到 Heroku。该站点是使用 Yeoman 的 Angular-Fullstack 生成器构建的,该生成器已推送到 GitHub。Codeship 检测推送,构建整个事物,然后开始出现问题。

Angular-Fullstack 设置为dist/文件夹包含整个 Heroku 应用程序,因此盲目部署所有内容在 Heroku 上不起作用。在本地,我可以使用 Heroku 工具带登录,在 dist 文件夹中添加一个远程,然后使用grunt buildcontrol将整个东西部署到 Heroku。

但是在 Codeship 中有一些警告: * 我无法安装 Heroku 工具带,wget因为它需要 sudo 而 Codeship 不支持 * 如果可以,我无法使用 CLI 登录 Heroku,因为我无法与 shell 交互在 Codeship * 我无法进入dist/文件夹,添加遥控器后,只需推送到 Heroku,因为我需要输入我的凭据。

有没有我在这里错过的方法?我想让 Codeship 处理从构建到部署到 Heroku 的所有事情(仅在master分支上)。

4

1 回答 1

1

弄清楚了!

我跳过了尝试安装 Heroku Toolbelt 的步骤,只是将 Heroku 上的 repo 添加为远程:

git remote add heroku ssh://git@heroku.com/[your-heroku-app-name].git

Codeship 具有可用于每个构建的公钥。因此,我将该公钥添加到我的 Heroku 帐户中。

然后我注意到 Git 仍在尝试使用 HTTPS 而不是 SSH 推送,因此我将其添加到部署脚本中:

git config --global url.ssh://git@heroku.com/.insteadOf https://git.heroku.com/

这确保了 Git 使用 Heroku 的 SSH url。然后我让 Codeship 构建整个项目并使用grunt buildcontrol:heroku.

于 2016-06-02T07:48:08.240 回答