pantheon-systems / example-drops-8-composer
在Pantheon上使用Composer安装drops-8。
Requires
- php: >=7.3
- composer/installers: ^1.9
- cweagans/composer-patches: ^1.7
- drupal/core-composer-scaffold: ^8.8.1
- drupal/core-recommended: ^8.8
- drush-ops/behat-drush-endpoint: ^9.3
- drush/drush: ^8.4.5
- pantheon-systems/drupal-integrations: ^8
- pantheon-systems/quicksilver-pushback: ^2
Requires (Dev)
- behat/behat: ^3.1
- behat/mink: ^1.7
- behat/mink-extension: ^2.2
- dealerdirect/phpcodesniffer-composer-installer: ^0.7
- dmore/behat-chrome-extension: ^1.3
- drupal/coder: ^8.3.1
- drupal/drupal-driver: ^2.1
- drupal/drupal-extension: ^4.1
- genesis/behat-fail-aid: ^2.1
- jcalderonzumba/mink-phantomjs-driver: ^0.3.1
- mikey179/vfsstream: ^1.2
- phpunit/phpunit: ^6.5
- squizlabs/php_codesniffer: ^3.4.0
- symfony/css-selector: ^2.8
Conflicts
- dev-master
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.0
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.11
- 1.3.10
- 1.3.9
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-clu-2023-01-04-00-03
- dev-clu-2022-12-31-00-04
- dev-bugs-5332
- dev-clu-2022-10-06-00-04
- dev-clu-2022-09-24-00-03
- dev-clu-2022-09-22-00-04
- dev-clu-2021-12-06-00-04
- dev-477-fix-cache
- dev-upgrade-lock-and-add-patch-config
- dev-composer-2
- dev-main
- dev-test-new-container
- dev-update-8.9.1
- dev-prep-for-drupal-9
- dev-clu-2020-06-01-00-10
- dev-drush-8.3.5
- dev-drush-10.2.2
- dev-clu-2020-05-30-00-12
- dev-drush-pre-8.3.4
- dev-drupal-9-drush-10
- dev-clu-2020-03-31-00-17
- dev-clu-2020-05-17-00-21
- dev-drush-8.3.3
- dev-phpunit-6.5
- dev-clu-2020-01-31-00-11
- dev-core-scaffold
- dev-integrated-composer
- dev-drush-10
- dev-clu-2019-12-21-00-10
- dev-remove-redundant-core
- dev-alisonjo315-patch-1
- dev-clu-2019-12-18-23-10
- dev-drupal-880
- dev-clu-2019-12-11-00-10
- dev-rsync-r
- dev-clu-2019-09-28-00-10
- dev-clu-2019-09-10-00-10
- dev-clu-2019-09-07-00-09
- dev-clu-2019-09-04-16-33
- dev-clu-2019-09-03-00-09
- dev-clu-2019-08-07-20-17
- dev-clu-2019-07-17-17-42
- dev-clu-2019-07-04-19-46
- dev-clu-2019-06-11-00-03
- dev-gitlab-vr
- dev-clu-2019-06-05-21-27
- dev-clu-2019-05-26-00-03
- dev-use-pantheon-orb
- dev-clu-2019-05-23-15-43
- dev-clu-2019-05-23-00-02
- dev-clu-2019-05-10-00-01
- dev-clu-2019-05-09-00-02
- dev-clu-2019-05-08-18-10
- dev-clu-2019-05-08-00-02
- dev-clu-2019-05-07-00-02
- dev-clu-2019-05-06-00-02
- dev-clu-2019-05-05-00-02
- dev-clu-2019-05-04-00-02
- dev-clu-2019-05-03-00-02
- dev-clu-2019-05-02-00-02
- dev-clu-2019-04-29-00-03
- dev-clu-2019-05-01-00-01
- dev-min-stable
- dev-clu-2019-04-28-00-04
- dev-clu-2019-04-17-00-01
- dev-8.7.0-beta2
- dev-remove-redundant-dependencies
- dev-clu-2019-04-16-00-02
- dev-circle-config-for-scheduled
- dev-clu-2019-04-06-23-48
- dev-remove-prepare
- dev-clu-2019-04-05-23-44
- dev-clu-2019-04-05-22-53
- dev-clu-2019-04-05-21-54
- dev-bitbucket-pipelines
- dev-compatibility-test
- dev-gitlab-support
- dev-clu-2019-03-20-18-25
- dev-clu-2019-03-14-14-29
- dev-drupal-8.6.10
- dev-drush-9.6-part2
- dev-behat-extension-testing
- dev-drush9.6
- dev-update-drush-behat-endpoint
- dev-clu-2019-01-16-20-23
- dev-shaal-patch-2
- dev-clu-2019-01-03-00-00
- dev-clu-2018-12-05-18-19
- dev-clu-2018-11-07-17-28
- dev-update-8.6.2
- dev-clu-2018-10-17-23-41
- dev-drush9
- dev-update-8.6.1
- dev-update-8.6.0
- dev-update-8.5.6
- dev-drupal-8.5.5
- dev-clu-2018-06-04-08-36
- dev-clu-2018-04-25-17-05
- dev-better-update-instructions
- dev-no-dev
- dev-clu-2018-03-28-20-48
- dev-use-drops-8-scaffolding
- dev-clu-2018-03-07-22-47
- dev-drush-9
- dev-terminus-171
- dev-clu-2018-02-23-18-27
- dev-contenta
- dev-contenta--take2--install-hack
- dev-clu-2017-12-07-16-40
- dev-mc-address
- dev-build-tools-2a4
- dev-clu-2017-11-03-17-37
- dev-drupal-8.4.0
- dev-php-70
- dev-use-script-in-docker
- dev-circle-2.0
- dev-clu-2017-09-06-15-43
- dev-clu-2017-09-06-a152e36
- dev-ratelimit-check
- dev-readme-update
- dev-non-interactive
- dev-redundant-files-ignore
- dev-merge-test-branch
- dev-test
- dev-test-2.x
- dev-git-ignore-file-perms
- dev-prevent-submodules
- dev-modern-commands
- dev-simple-block
- dev-d830
- dev-behat-components
- dev-updatedb
- dev-example-theme
- dev-remove-reinstall
- dev-clone-content
- dev-first-to-dev
- dev-site-install-composer-script
- dev-config-installer
- dev-update-env-vars
- dev-lightning-fist-2
- dev-behat-wait
- dev-dc-workaround
- dev-0e9bashallow-clone
- dev-db0f2shallow-clone
- dev-473aeshallow-clone
- dev-451bfshallow-clone
- dev-composer-merge-pantheon
This package is auto-updated.
Last update: 2024-09-04 03:57:20 UTC
README
此仓库是利用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_codesniffer
和 phpunit
。开发依赖项不会部署到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
的子目录中:build
、deploy
或test
。
构建脚本 .ci/build
构建适合部署的工件的操作步骤。根据需要,您可以在此处添加其他构建脚本,例如安装Node依赖项。
.ci/build/php
使用Composer安装PHP依赖项
构建脚本 .ci/deploy
辅助代码部署到Pantheon的脚本。
.ci/deploy/pantheon/create-multidev
为除默认Git分支之外的分支创建一个新的Pantheon multidev环境- 请注意,并非所有用户都有multidev访问权限。有关详细信息,请参阅multidev常见问题解答文档。
.ci/deploy/pantheon/dev-multidev
根据Git分支将构建工件部署到Pantheon的dev
或multidev环境
自动化测试脚本 .ci/tests
运行自动化测试的脚本。根据您的测试需求,您可以在此处添加或删除脚本。
GitHub Actions工作流程 .ci/.github
应将此文件夹复制到根目录中的.gitignore文件夹以启用GitHub Actions。还需要向GitHub Actions配置中添加一些机密信息。
静态测试 .ci/test/static
和 tests/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/behat
和 tests/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 更新。