【问题标题】:Continuous deployment for NodeJS-based single-page-apps running on Windows Azure?在 Windows Azure 上运行的基于 NodeJS 的单页应用程序的持续部署?
【发布时间】:2016-01-04 14:26:14
【问题描述】:

我正在尝试为 Windows Azure 上的持续部署单页应用程序找到一个好的设置。以下是限制条件:

  • 源代码托管在 GitHub 上。
  • 应用程序必须在 Windows Azure 上提供,无论是作为 Web 应用程序还是其他适合单页应用程序的 Azure 服务,即不需要服务器端处理的静态 html5 站点。
  • 我正在尝试使用基于 NodeJS 的构建技术(例如 grunt 或 gulp)来生成最终站点的各种单页应用程序架构。
  • 我使用 WebStorm 作为 Web 开发环境,因此在这种情况下,对 Visual Studio 和 MSBuild 的任何依赖都显得很尴尬。
  • 我想在云中设置持续部署,即每个新提交都应该导致自动构建和部署。一切都应该在云中实现自动化。

我已经尝试过 Windows Azure Web 应用程序的持续部署功能,但我无法让构建过程按照我的意愿进行。也许可以调整构建过程,我不确定。

我也研究了 AppVeyor,但它似乎针对使用 MSBuild 作为构建平台的 .NET 项目进行了优化。

我已经开始研究似乎很有希望的 travis-ci 和 circleci。

我想找到使用最新技术和云服务的最简单、最自然的方法。有什么可以推荐的?

【问题讨论】:

    标签: node.js azure github gruntjs continuous-delivery


    【解决方案1】:

    我认为您缺少的概念是您需要有一个管道来将您的代码从一个阶段传递到下一个阶段。

    这一切都可以基于 Github 和 Azure 完成。这可能是一个示例管道。

    • 当您第一次提交更改时,它将提交到“测试”分支
    • Github 中的 webhook 调用您的 Travis 服务器,它将执行您需要的构建步骤,并执行任何初步测试。即确保它可以编译等。
    • 然后将代码与暂存分支合并。
    • Azure 获取新代码并将其部署到您的暂存 Web 应用程序。
    • 另一个 Github webhook 触发启动您的功能和性能测试。
    • 在那个阶段,您可能需要一个手动步骤来授权部署到生产环境。
    • 然后自动或手动将暂存分支与生产分支合并,Azure 会自动部署。

    这显然是简化的,但它应该为您提供一个开始思考您需要实施的过程的地方。

    【讨论】:

    • 感谢您的回答。我正在尝试构建的管道是一个非常简单的原型设计。基本上它是关于一个分支和一个环境以及提交 -> 构建 + 测试 -> 部署之类的过程。我注意到您将 Travis 和 Github webhooks 引入讨论,因为这可能是我的解决方案的一部分,因此 +1。
    【解决方案2】:

    如果你想在没有任何服务器端处理的情况下持续部署一个 HTML5 单页应用程序,我认为没有必要使用 NodeJS 的构建技术来部署一个静态的 html5 网站。

    您可以尝试在Azure旧门户上创建HTML5 Empty Web Appset up deployment from source control进行操作,请参阅下面的这些图片并参考文档https://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control/

    set up deployment from source control 选项位于 Azure 旧门户上 Web 应用的 DASHBOARD 选项卡页的右侧。

    然后你可以在https://<your azure webapp name>.scm.azurewebsites.net/DebugConsole访问你的Azure WebApp的Kudu工具CMD,你可以在路径site/wwwroot找到你的静态html5网站的这些web文件。下图是我对HTML5 Empty Web Appswwwroot目录的截图。

    如有任何疑问,请随时告诉我。

    【讨论】:

    • 非常感谢您抽出宝贵时间给出这个答案。我确实需要一个构建过程来准备 Web 应用程序的静态版本。所以你的第一个观察(我不需要构建过程)是不正确的。但是,您的其余评论非常有价值,因为它向我建议了如何修改构建过程,因此为此 +1。
    • @NikolaSchou 看来你可以尝试使用Visual Studio Team Services,请看visualstudio.com/get-started/overview-of-get-started-tasks-vs。关于构建 NodeJS App 并将其部署到 Azure WebApp,您可以参考此文档msdn.microsoft.com/Library/vs/alm/Build/azure/nodejs
    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 2016-10-24
    • 2019-09-23
    相关资源
    最近更新 更多