代码之家  ›  专栏  ›  技术社区  ›  jezzipin

在Azure应用服务上运行Kentico持续集成

  •  0
  • jezzipin  · 技术社区  · 6 年前

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

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

    我们面临的问题是,在将我们的更改部署到开发环境和活动环境时。

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

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   mnield    5 年前

    是的,我已经在Azure DevOps的发布管道中运行了这个。这是我们目前正在开展的业务,我在那里工作。

    要让这个对我有效,关键步骤如下:

    1. 我不想部署 ContinuousIntegration.exe
    2. 解压缩部署包并复制 CMS
    3. 从步骤1中的repo artifact复制 并将CI存储库文件夹放入解压后的工作文件夹中的正确位置。
    4. 确保连接字符串实际上适用于解压缩文件夹中的数据库,如果需要,您可能需要更改与web.config的处理方式相关的VS build选项。
    5. 从这里开始,您应该可以在新的工作文件夹中对目标数据库运行CI。

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

    我会把这个写得更详细一些,等我写完后再在这里分享。

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

        2
  •  0
  •   Peter Mogilnitski    6 年前

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

    微软的“目标机器上的Powershell”还有一步要走,你可以看看。

    P、 S.也看一看 Three Ways to Manage Data in Kentico Using PowerShell

        3
  •  0
  •   Andrew Coats    5 年前

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

    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:\主页\站点\wwwroot ren App_Offline.htm应用程序_Offline.bak