pantheon-systems/example-drops-8-composer

此软件包已废弃,不再维护。未建议替代软件包。

在Pantheon上使用Composer安装drops-8。

安装量: 20,489

依赖项: 0

建议者: 0

安全: 0

星级: 95

关注者: 57

分支: 124

开放性问题: 29

语言:Shell

类型:项目

This package is auto-updated.

Last update: 2024-09-04 03:57:20 UTC


README

CircleCI Deprecated

Pantheon example-drops-8-composer Dev Site example-drops-8-composer

此仓库是利用Composer、持续集成(CI)、自动测试和Pantheon的现代Drupal 8工作流程的参考实现和起始状态。尽管这是一个良好的起点,但您仍需要根据项目需求自定义和维护CI/测试设置。

此仓库打算由Terminus Build Tools 插件一次性复制,但也可以用作模板。它不应直接克隆或分支。

Terminus Build Tools 插件将创建一个新项目,包括

  • Git 仓库
  • 免费的 Pantheon 沙箱站点
  • 持续集成配置/凭证设置

有关创建新项目的更多详细信息和方法,请参阅Terminus Build Tools 插件

重要文件和目录

/web

由于在 pantheon.yml 中的配置,Pantheon 将从 /web 子目录提供网站服务。这对于基于Composer的工作流程是必要的。将您的网站放在此子目录中还可以允许将测试、脚本以及与项目相关的其他文件存储在您的仓库中,而不会污染您的Web文档根目录或从Pantheon可公开访问。如果项目是公开的,它们仍然可以从版本控制项目访问。有关详细信息,请参阅pantheon.yml 文档。

/config

移动到git根目录的目录之一是 /config。此目录包含Drupal的 .yml 配置文件。在更传统的仓库结构中,这些文件将位于 /sites/default/config/。多亏了settings.php 中的这一行,配置被完全移动到Web根目录之外。

composer.json

此项目使用Composer管理第三方PHP依赖项。

composer.json 中的 require 部分应用于任何您的Web项目需要的依赖项,即使是仅在非生产环境中使用的依赖项。所有 require 中的依赖项都将推送到Pantheon。

require-dev 部分应用于不是Web应用程序的一部分,但构建或测试项目所必需的依赖项。一些例子是 php_codesnifferphpunit。开发依赖项不会部署到Pantheon。

如果您只是在GitHub上浏览此仓库,您可能看不到上面提到的某些目录。这是因为Drupal核心和贡献模块是通过Composer安装的,并在 .gitignore 文件中被忽略。

此项目使用以下必需依赖项

  • composer/installers:通过类型重定位某些Composer项目的安装位置;例如,此组件允许Drupal模块安装到 modules 目录而不是 vendor

  • drupal/core-composer-scaffold:允许在安装时将某些必要的文件(例如index.php)复制到所需位置。

  • drupal/core-recommended:此软件包包含Drupal本身,包括Drupal脚手架文件。

  • pantheon-systems/drupal-integrations:此软件包提供了安装此站点在Pantheon平台所需的额外脚手架文件。如果站点部署在其他地方,这些文件将不起作用。

以下是一些可选的依赖项,也作为建议包含

  • pantheon-systems/quicksilver-pushback:此组件允许使用构建工具工作流程的站点将Pantheon仪表板的提交自动推送到GitHub。如果没有为该站点设置此工作流程,则此软件包将不起作用。

  • drush/drush:Drush是一个命令行工具,提供从命令行与站点维护交互的方法。

  • drupal/console:Drupal Console类似于Drush,是Drush的替代品。您可以任选其一或两者都使用。

  • cweagans/composer-patches:允许在安装时使用补丁文件修改站点。

  • drupal/config_direct_save:提供了一种方法,可以直接从Drupal管理界面将配置导出到文件系统(在SFTP模式下)。这是一种管理配置文件的好方法。

  • drupal/config_installer:允许通过Drupal网络安装程序重新安装站点,使用现有导出的配置文件。

  • drush-ops/behat-drush-endpoint:用于Behat测试。

  • rvtraveller/qs-composer-installer:允许从Composer软件包安装quicksilver钩子。

  • zaporylie/composer-drupal-optimizations:此软件包使更新Drupal及其依赖项时,运行`composer update`操作更快。

如果不需要或不需要,可以删除任何可选的依赖项。

.ci

.ci目录是存储在持续集成上运行的脚本的地方。特定提供者的配置文件,如.circle/config.yml.gitlab-ci.yml,将使用这些脚本。

脚本根据其功能组织到.ci的子目录中:builddeploytest

构建脚本 .ci/build

构建适合部署的工件的操作步骤。根据需要,您可以在此处添加其他构建脚本,例如安装Node依赖项。

  • .ci/build/php使用Composer安装PHP依赖项

构建脚本 .ci/deploy

辅助代码部署到Pantheon的脚本。

  • .ci/deploy/pantheon/create-multidev为除默认Git分支之外的分支创建一个新的Pantheon multidev环境
  • .ci/deploy/pantheon/dev-multidev根据Git分支将构建工件部署到Pantheon的dev或multidev环境

自动化测试脚本 .ci/tests

运行自动化测试的脚本。根据您的测试需求,您可以在此处添加或删除脚本。

GitHub Actions工作流程 .ci/.github

应将此文件夹复制到根目录中的.gitignore文件夹以启用GitHub Actions。还需要向GitHub Actions配置中添加一些机密信息。

静态测试 .ci/test/statictests/unit 静态测试在不执行代码的情况下分析代码。它在检测语法错误方面很好,但在功能方面不行。

  • .ci/test/static/run 运行 PHP CodeSniffer,使用 Drupal 编码规范,PHP 单元测试和 PHP 语法检查
  • tests/unit/bootstrap.php 引导 Composer 自动加载器
  • tests/unit/TestAssert.php 一个单元测试示例。需要在 tests/unit 目录下创建项目特定的测试文件。

视觉回归测试 .ci/test/visual-regression 视觉回归测试使用无头浏览器对网页进行截图并比较视觉差异。

  • .ci/test/visual-regression/run 运行 BackstopJS 视觉回归测试。
  • .ci/test/visual-regression/backstopConfig.js BackstopJS 配置文件。在此处设置的配置需要根据您的项目进行更新。例如,pathsToTest 变量确定要测试的 URL。

Behat 测试 .ci/test/behattests/behat Behat 是一个用 PHP 编写的接受/端到端测试框架。它便于在 Pantheon 基础设施上测试完全构建的 Drupal 网站。使用 Drupal Behat 扩展 帮助 Behat 和 Drupal 集成。

  • .ci/test/behat/initialize 创建要测试环境的备份
  • .ci/test/behat/run 设置 BEHAT_PARAMS 环境变量,包含 Behat 需要的动态信息,并通过 Terminus 配置它使用 Drush,并启动无头 Chrome,然后运行 Behat
  • .ci/test/behat/cleanup 恢复之前创建的数据库备份,并保存 Behat 捕获的截图
  • tests/behat/behat-pantheon.yml 兼容在 Pantheon 站点上运行测试的 Behat 配置文件
  • tests/behat/tests/behat/features 应该存储 Behat 测试文件(扩展名为 .feature)。提供的示例测试需要替换为项目特定的测试。
    • tests/behat/tests/behat/features/content.feature 一个 Behat 测试文件,它登录到 Drupal 控制台,创建节点、用户和术语,并验证它们在 Drupal 管理界面和网站前端的存在

GitHub Actions

如果您需要为现有项目启用 GitHub Actions,应将 .ci/.github 复制到 .github,然后在 GitHub Actions 配置中添加以下机密信息

  • ADMIN_EMAIL
  • ADMIN_PASSWORD
  • ADMIN_USERNAME
  • TERMINUS_TOKEN
  • TERMINUS_SITE
  • SSH_PRIVATE_KEY
  • GH_TOKEN

更新您的网站

当使用此存储库来管理您的 Drupal 网站时,您将不再使用 Pantheon 仪表板来更新您的 Drupal 版本。相反,您将使用 Composer 来管理更新。确保您的网站处于 Git 模式,在本地克隆它,然后从那里运行 composer 命令。像往常一样提交并将文件推送到 Pantheon。

重新启用自动化

从 2022 年 12 月 1 日起,每天运行以检查 composer 更新的自动化已禁用。Build Tools 用户可以通过取消注释 .circleci/config.yml 中的 scheduled_update_check 来重新启用自动化以检查 composer 更新。