ucdavis / sitefarm-pantheon
在Pantheon上使用Composer安装SiteFarm。
Requires
- composer/installers: ^1.0.20
- cweagans/composer-patches: 1.*
- drupal-composer/drupal-scaffold: ^2.0.1
- drupal/config_direct_save: ^1.0
- drupal/config_installer: ^1.0
- drupal/console: ^1.0.0-rc8
- drupal/core: ^8.5
- drush/drush: ~8
- rvtraveller/qs-composer-installer: ^1.1
- ucdavis/sitefarm: dev-8.x-4.x
- ucdavis/sitefarm_one: dev-8.x-4.x
- webflo/drupal-core-strict: ^8.5
Requires (Dev)
- behat/behat: 3.*
- behat/mink: ^1.7
- behat/mink-extension: ^2.2
- behat/mink-goutte-driver: ^1.2
- drupal/drupal-extension: ^3.1
- drush-ops/behat-drush-endpoint: ^0.0.4
- jcalderonzumba/gastonjs: ^1.0.2
- jcalderonzumba/mink-phantomjs-driver: ^0.3.1
- mikey179/vfsstream: ^1.2
- pantheon-systems/quicksilver-pushback: ~1
- phpunit/phpunit: ^4.8
- symfony/css-selector: ^2.8
Conflicts
This package is auto-updated.
Last update: 2024-09-09 01:58:35 UTC
README
此存储库是使用Pantheon的Composer工作流程的起始状态。它被设计为通过Terminus Build Tools插件复制,该插件将为您设置全新的
此存储库应一次性通过Terminus Build Tools插件复制,但也可以用作模板。它不应该直接克隆或分支。
Terminus Build Tools插件将构建一个新项目,包括
- Git仓库
- 免费的Pantheon沙盒站点
- 持续集成配置/凭证设置
您需要
- 一个Pantheon账户
- Terminus,Pantheon的命令行工具
- Terminus Build Tools插件
- Bitbucket账户和具有创建新仓库功能的应用密码,或者GitHub账户和CircleCI以及具有创建新仓库功能的身份验证令牌。
您可能发现将Bitbucket(或GitHub)和CircleCI令牌作为变量导出到命令行中会更简单,这样Build Tools插件可以自动检测它们
export BITBUCKET_USER=[REDACTED]
export BITBUCKET_PASS=[REDACTED]
# and/or
export GITHUB_TOKEN=[REDACTED]
export CIRCLE_TOKEN=[REDACTED]
运行此命令并观看魔法发生
$ terminus build:project:create ucdavis/sitefarm-pantheon --git=bitbucket --stability=dev --team="University of California Davis" --org=ucdavis my-sitefarm-site
将“my-sitefarm-site”替换为您在Pantheon中希望使用的站点机器名称。将“--org=ucdavis”替换为您自己的bitbucket团队。
一旦构建完成,请登录Bitbucket,并将新仓库的公钥复制到ietwebdev/sitefarm、ietwebdev/sitefarm-theme-one和ietwebdev/aggiefeed-drupal-module的ssh密钥中
现在,您可以克隆Bitbucket仓库并开始工作。
重要文件和目录
/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平台上安装此网站所需的额外框架文件。如果网站部署在其他地方,则这些文件不起作用。
-
drush-ops/behat-drush-endpoint:由Behat测试使用。
-
rvtraveller/qs-composer-installer:允许网站通过Composer包安装quicksilver钩子。
-
zaporylie/composer-drupal-optimizations:此包使在更新Drupal及其依赖项时,
composer update
操作运行更快。
以下可选依赖项也作为建议包括在内
-
pantheon-systems/quicksilver-pushback:此组件允许将来自Pantheon仪表板的提交自动推回GitHub(对于使用Build Tools工作流程的网站)。如果为此网站设置了该工作流程,则此包不起作用。
-
drush/drush:Drush是一个命令行工具,提供从命令行与网站维护进行交互的方式。
-
drupal/console:Drupal Console类似于Drush,是Drush的替代品。您可以使用任一或两者。
-
cweagans/composer-patches:允许在安装时使用补丁文件更改网站。
-
drupal/config_direct_save:提供了一种从Drupal管理界面直接将配置导出到文件系统(在SFTP模式下)的方法。这是一种管理配置文件的便捷方式。
-
drupal/config_installer:允许通过Drupal Web安装程序使用现有导出的配置文件重新安装网站。
如果不需要或不想使用,可以删除任何可选依赖项。
/.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
运行自动测试的脚本。根据您的测试需求,您可以在此处添加或删除脚本。
静态测试 .ci/test/static
和tests/unit
静态测试在不执行代码的情况下分析代码。它在检测语法错误方面做得很好,但不适用于功能。
.ci/test/static/run
使用 PHP CodeSniffer 根据 Drupal 编码标准、PHP Unit 和 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 所需的动态信息的环境变量BEHAT_PARAMS
,并通过 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 管理界面和站点前端的存在
更新您的网站
当使用此存储库来管理您的 Drupal 网站时,您将不再使用 Pantheon 仪表板来更新您的 Drupal 版本。相反,您将使用 Composer 来管理您的更新。确保您的网站处于 Git 模式,将其本地克隆,然后从那里运行 composer 命令。像往常一样提交和推送您的文件到 Pantheon。