我想在github页面中部署我的应用程序。我希望构建作业是自动化的。我的构建命令基本上包括运行单元测试,构建生产版本,gh-deploy命令以部署到github页面。我可以使用代码船来实现吗?我需要像ec2这样的实际vm吗?
答案 0 :(得分:1)
使用codeship进行的官方自动化过程涉及pushing to GitHub。
如果您的构建过程可以填充您要发布的内容,则只需将其从代码任务作业本身中推送即可。
例如,请参阅“ Auto-deploying to gh-pages
with Codeship ”(马丁·钱伯林(Martyn Chamberlin)),有关发布Gulp构建:
git clone <the ssh link to your repo> dist
cd dist
git checkout gh-pages || git checkout --orphan gh-pages
cd ..
rm -rf dist/**/* || exit 0
npm install
gulp deploy
cd dist
git config user.email "<the email address you used for your machine user GitHub account>"
git config user.name "<the username you used for your machine user GitHub account>"
git add .
git commit -m "Deploy to GitHub Pages: ${CI_COMMIT_ID} --skip-ci"
git push origin gh-pages
这实际上是一组聪明的命令。
它正在另一个git repo内创建一个git repo以便正确处理构建。
我希望可以说我是提出这个想法的人,但是帽子提示属于Domenic,他用他的Travis主意为我提供了这个想法。关于此的一些注意事项:
- 这里假设
npm install; gulp deploy
是您用来组合和缩小资产的一系列命令。
我的专案确实如此,但您的专案可能有所不同(尤其是第二个专案)。确保用您的实际行数(当然还有值)替换第6行和第7行。- 这还假设您的输出目录为
dist
。希望是这样,因为这是约定,但是如果您还有其他要求,则需要更新第1、2和8行。- 我完全绕开了Codeship通过其自己提供的代码来处理最终git push的建议(“包括来自
continuous-deployments/git-push.sh
的命令”)。
无论哪种方式都没什么大不了,我只是看不到需要额外的HTTP请求。