2
  1. 我下载并开始创作环境(crafter-cms-authoring.zip)
  2. 创建由远程 git 存储库支持的站点,如下所述:基于蓝图创建站点然后推送到远程裸 git 存储库
  3. 创建了一个内容类型,新页面。
  4. 发布一切

现在,我希望,我可以在远程仓库中看到我的更改。但我能看到的只是上面 2. 步骤中的初始提交。没有新的内容类型,没有新的页面,没有“直播”的分支。(但是内容项在本地存储库中可见)

什么不见​​了?

编辑: 由于 Creafter 可以通过多种方式进行设置,为了阐明我的部署场景,我添加了部署图 + 简短描述。

无头部署 有 3 台主机 - 每个环境一台 + 共享 git repo。

创作
这是工作室所在的位置,内容作者进行更改。每个更改都保存到sandbox本地 git 存储库。发布内容时,会将更改拉到published本地 git 存储库。这两个本地存储库无法从其他主机访问。

交付
这是向最终用户/应用程序提供已发布内容的方式。 Deployer负责为交付实例获取新的发布。它通过轮询(定期从)特定的 git 存储库来实现。当它拉取新的更改时,它会更新本地 git 存储库siteSolr索引。

Gitlab
这托管 git 存储库site。它可以从创作和交付主机访问。创建后,新site的将被推送到此存储库。交付实例还会轮询存储库是否有新的更改Deployers

为了使此设置正常工作,发布的更改必须以某种方式最终出现在 Gitlab 的存储site库中,但它们没有(从 AuthoringDeployer到 Gitlab 的红色通信路径site


基于@summerz 答案的解决方案

我实施了GitPushProcessor在创作中实现并配置了新的部署目标Deployer,添加mysite-live.yaml/opt/crafter-cms-authoring/data/deployer/target/

target:
    env: live
    siteName: codelists
    engineUrl: http://localhost:9080
    localRepoPath: /opt/crafter-cms-authoring/data/repos/sites/mysite/published 
    deployment:
        pipeline:
        - processorName: gitPushProcessor
            remoteRepo:
                url: ssh://path/to/gitlab/site/mysite
4

1 回答 1

3

我想你可能pushpublish.

关于出版

在使内容上线的批准工作流程之后,创作 (Studio) 发布到交付 (引擎)。创作是安全地管理和预览内容(和代码,如果你喜欢的话)的地方,然后将其发布到实时交付节点以交付给最终用户。

关于 DevOps

可以将站点的本地 git 存储库推入/拉出远程存储库。这表示:

  • 代码可以从开发人员的工作站流向 Studio(通过 github、gitlab、bitbucket 等)<== 这是向前发展的代码(并且可以通过 QA、负载测试等环境流动)
  • 内容可以以类似的方式从 Studio 流回开发人员的本地工作站 <== 这是内容向后移动(如果需要,您可以在笔记本电脑上拥有生产内容)

当代码从开发人员流向 Studio 时,即是 Studio 从远程 git 存储库中提取的时间。

当内容从 Studio 向后流向开发人员时,就是 Studio 推送到远程 git 存储库的时候。

文档

可以在此处找到与发布相关的系统架构的良好鸟瞰图:http: //docs.craftercms.org/en/3.0/developers/architecture.html

一篇解释 DevOps 工作流/Git 内容的好文章在这里:http ://docs.craftercms.org/en/3.0/developers/developer-workflow.html


基于扩展问题的更新

published根据您的问题,我的新理解是:由于某些限制(即使通过 SSH 甚至对源 IP 有限制),您不能允许 Delivery 中的部署人员访问 Authoring 的存储库进行轮询。您希望将 GitLab 用作一种内容仓库,可push从创作和pull交付中访问。

如果我的理解是正确的,我可以想到两个直接的解决方案。

  1. 在创作中设置一个 cron 作业以定期推送到 GitLab。您需要将 GitLab 添加为远程仓库published,然后像这样设置一个 cron:

* * * * * git --git-dir /opt/crafter/data/repos/sites/{YOUR_SITE}/published/.git push 2>&1

首先手动测试它,然后 cron 它。

  1. 编写一个部署处理器,可以在更改时将内容推送到端点,或者等待票证:https ://github.com/craftercms/craftercms/issues/2017 。构建完成后,您需要在 Authoring 中配置另一个部署器,该部署器将推送到 GitLab。

无论哪种情况,请注意不要更新 GitLab 中的内容,因为您正在使用published而不是sandbox. (请参阅上面的 DevOps 说明以了解原因。)

于 2018-03-26T22:23:06.780 回答