【问题标题】:Running Kentico continuous integration on Azure app services在 Azure 应用服务上运行 Kentico 持续集成
【发布时间】:2019-05-21 23:16:05
【问题描述】:

我们有一个新项目,我们正在尝试利用 Kentico 中内置的持续集成来跟踪对模板、页面类型、转换等的更改。

我们已经设法在 Kentico 数据库的两个实例之间进行本地工作,在一个中进行更改,通过 CI 同步更改,然后使用位于 bin 文件夹中的持续集成应用程序将它们恢复到第二个数据库Kentico 网站。

我们遇到的问题是在将更改部署到我们的开发和实时环境时。

我们的站点托管为 Azure 应用服务,我们使用 VSTS (Azure DevOps) 构建和发布工作流部署到它们,但是,由于这些任务在代理中运行,我们尝试运行以触发 CI 应用程序的任何 powershell 脚本都会失败,因为它没有在站点/服务器上下文中运行。

我的问题是,有没有人成功地在 Azure 应用服务的上下文中运行 Kentico CI?或者,如何在部署后在站点上触发 powershell 脚本?

【问题讨论】:

    标签: azure powershell azure-devops kentico azure-app-service-envrmnt


    【解决方案1】:

    是的,我已经在发布管道本身的 Azure DevOps 中运行了这个。这是我们目前在我工作的地方推出的一项业务。

    让这个为我工作的关键步骤如下:

    1. 我不想部署ContinuousIntegration.exe 或存储库文件夹,因此我需要从源代码控制创建第二个工件集(据我所知,目前只有使用 Azure Repos 和 GitHub 才有可能)。
    2. 解压缩您的部署包并将CMS 文件夹复制到工作目录,这是您要运行CI 的地方。我这样做是因为我需要可用的构建程序集。
    3. 从步骤 1 中的 repo 工件,将 ContinuousIntegration.exe 和 CI 存储库文件夹复制到解压缩工作文件夹中的正确位置。
    4. 确保连接字符串确实适用于解压缩文件夹中的数据库,如有必要,您可能需要更改 VS 构建选项以处理 web.config 的处理方式。
    5. 从这里开始,您应该能够在新工作文件夹中针对您的目标数据库运行 CI。

    在我的例子中,由于我没有在目标站点上运行 CI,这意味着每次都会恢复一切

    我正在写这个更详细的过程,所以当我完成后我会在这里分享。

    编辑: - 我终于写得更详细了:https://www.ridgeway.com/blog/web-development/using-kentico-12-mvc-with-azure-devops

    【讨论】:

      【解决方案2】:

      将 CI 文件部署到 Azure 应用服务,然后使用 Azure 作业运行“ContinuousIntegration.exe”

      如果您将名为 KenticoCI.bat 的文件放在目录 \App_Data\jobs\triggered\ContinuousIntegration 中 - 这将自动创建一个您可以触发的 Web 作业:

      KenticoCI.bat

      cd D:\home\site\wwwroot
      ren App_Offline.bak App_Offline.htm
      rem # run Kentico CI Integraton
      cd D:\home\site\wwwroot\bin
      ContinuousIntegration.exe  -r
      
      

      rem # 删除“App_Offline.htm”文件以使网站重新上线 cd D:\home\site\wwwroot ren App_Offline.htm App_Offline.bak

      【讨论】:

        【解决方案3】:

        我们有,但没有 CI。 VSTS + GIT。我们将virtual objects 存储在文件系统中,并使用 git 进行版本控制。我们有自己的自定义库,可以导入导出 Kentico 对象(这些对象不受 Git 控制)。本质上,我们有一个 json 文件“发布清单”,我们在其中指定需要导出哪些对象(即在环境之间移动)。

        Microsoft 'Powershell on Target Machines' 中有一个步骤,你猜你可以研究一下。

        附:也可以看看Three Ways to Manage Data in Kentico Using PowerShell

        【讨论】:

          猜你喜欢
          • 2015-03-25
          • 1970-01-01
          • 2018-11-16
          • 1970-01-01
          • 1970-01-01
          • 2016-01-05
          • 1970-01-01
          • 2016-09-14
          • 1970-01-01
          相关资源
          最近更新 更多