对于分支中的每个提交,以不带vm的代码方式运行命令

时间:2019-06-09 17:18:57

标签: github continuous-integration continuous-deployment codeship

我想在github页面中部署我的应用程序。我希望构建作业是自动化的。我的构建命令基本上包括运行单元测试,构建生产版本,gh-deploy命令以部署到github页面。我可以使用代码船来实现吗?我需要像ec2这样的实际vm吗?

1 个答案:

答案 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请求。
  •