pantheon-systems / example-drupal7-circle-composer
用于使用Composer创建管理Drupal站点的项目模板,并使用Circle CI进行测试。使用 `composer create-project` 创建自己的项目,或者,如果您更喜欢克隆git仓库,请先运行 `composer install`,然后运行 `bin/init-new-project` 来替换此文件并设置起点
Requires
- composer/installers: ^1.0.21
- cweagans/composer-patches: ~1.0
- derhasi/composer-preserve-paths: 0.1.*
- drupal/admin_menu: 7.3.*
- drupal/composer_vendor: 7.1.*
- drupal/devel: 7.1.*
- drupal/responsive_bartik: 7.1.*
- drush/drush: 8.*
- pantheon-systems/drops-7: 7.*
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-14 17:58:54 UTC
README
此项目模板将创建一个由Composer管理的Drupal 7站点,并在Circle CI上使用Behat对每个提交进行测试。该Drupal站点可在Pantheon或Circle服务器上运行。只需几个简单的步骤即可设置全新的站点或转换现有站点。
向您的项目添加新测试也非常简单;只需遵循包含的测试示例。
开始使用
在开始之前,您应该首先 安装composer。
一旦您的系统上有了Composer,就创建一个新项目
$ composer create-project pantheon-systems/example-drupal7-circle-composer put-your-site-name-here
如果您已经在Pantheon上运行了Drupal 7站点,您应该使用与您的Pantheon站点相同的名称作为您的项目名称。如果您是从头开始,并且希望在Pantheon上进行测试,您应该 注册免费机构账户(如果您还没有这样做)。
测试
有四种测试方法
- 本地测试,Behat和Drupal站点都在本地机器上运行。
- 本地测试,Behat在本地机器上运行,Drupal站点在Pantheon上。
- 在Circle CI上,Behat和Drupal站点都在Circle服务器上运行。
- 在Circle CI上,Behat在Circle服务器上运行,Drupal站点在Pantheon上。
本地测试
运行所有测试,Behat和Drupal站点都在本地系统上运行,您需要做的就是运行本地-test脚本
$ ./bin/local-test
如果您想在本地系统上运行Behat并测试在Pantheon上运行的Drupal站点,请使用Terminus登录,然后运行pantheon-test脚本
$ terminus auth login
$ ./bin/pantheon-test
这可能会正常工作,但如果不行,请参阅下面的自定义部分;您可能需要设置您的数据库凭据。
在Circle CI上测试
设置您的项目以供Circle CI测试
- 在您的网页浏览器中登录到 https://circleci.com。
- 在左侧菜单栏上点击“+”、“添加项目”。
- 找到您想配置进行测试的仓库。如果需要,导航到正确的组织,并使用“过滤仓库...”字段来减少显示列表的大小。
- 点击“构建项目”以启用仓库并首次构建它。
提供的circle.yml文件设置为首先在Circle服务器上执行简短的烟雾测试,如果通过,则将站点复制到Pantheon,然后对在Pantheon上运行的Drupal站点运行剩余的Behat测试。Behat配置文件应该正确设置以这种方式运行基本测试。有关如何添加更多测试或更改其行为(例如,仅在Circle上进行测试)的信息,请参阅下面的自定义部分。
为了在Circle上正确运行测试,有必要定义一些“秘密”环境变量值,以便Circle服务器可以与Terminus进行身份验证。必要的变量如下表所示
在项目设置 > 环境变量中编辑这些内容(https://circleci.com/gh/ORG/PROJECT/edit#env-vars)。一旦在这里设置值,Circle CI 将会保密这些值,即使其他方登录到 Circle CI 网站,也无法看到它们。
注意:如果代码提交到显示这些值的仓库中,这些值可能会被泄露;因此,Circle CI 不会将来自外部来源的拉取请求中的这些值传递进去。因此,Pantheon 测试将不会为这些类型的 PR 运行。
您还需要设置一个 ssh 密钥,以便推送至 Pantheon 的脚本可以将更改提交到 Pantheon 的 git 仓库。
- 创建公钥/私钥 ssh 密钥对。您可能希望使用与 GitHub 不同的密钥。
- 将公钥 ssh 添加到您的 Pantheon 账户.
- 将私钥 ssh 添加到 Circle CI。您可以选择留空 "Host" 字段,或者将其设置为 "codeserver.$PENV.$PUUID.drush.in",其中 "$PENV" 替换为与 PENV 环境变量中相同的值,"$PUUID" 替换为 您的 Pantheon 网站的 UUID。
有关配置的更多信息,请参阅 Circle CI 文档。
自定义
创建新项目后,您仍需要执行一些自定义步骤以满足您的特定需求。创建项目脚本会尽其所能进行自定义,因此它应该可以直接运行。各种自定义选项对于添加您特定站点所需的任何附加项非常有用。
文件夹 behat
和 scripts
将被复制到您的项目中,并且可以自由修改并提交到您的 GitHub 仓库。在提供的 .gitignore 文件中列出的任何位置都由 Composer 管理,不应修改或提交。
环境变量
有三个地方可以定义环境变量。
- Circle CI 环境变量设置,用于敏感值
- circle.yml,用于非敏感值
- 在 scripts/default-environment 文件中,用于所有环境通用的非敏感值
请参阅 default-environment 中的注释,以了解可以设置的不同变量的说明。在 "在 Circle CI 上测试" 部分中描述了如何在 Circle CI 中设置敏感值的说明。
向站点添加模块
可以使用 Composer 添加额外的模块
$ cd my-new-project-name
$ composer require drupal/devel '7.*'
这将把指定的模块放入 sites/all/modules/contrib
,并且还会更新您的 composer.json 文件,包含刚刚添加的模块的信息。
如果您有一个带有现有模块的现有站点,请使用 composer-generate Drush 命令从现有站点生成 composer.json 文件。复制生成的文件中的 require
部分的模块,并忽略此文件的其余部分。
自定义模块
您可以将自定义模块和主题分别放在 drupal/sites/all/modules/custom
和 drupal/sites/all/themes/custom
中,并将它们提交到包含您的 composer.json 文件的同一仓库。
如果您愿意,可以为自定义组件创建一个Composer项目,并将它们添加到您的composer.json文件中。为了做到这一点,没有必要使您的代码公开可访问;您可以创建一个指向私有GitHub仓库的本地Composer包定义。有关创建Composer包的不同方法,请参阅创建自己的Composer包的详细信息。
安装后
在Drupal站点安装后,将执行post-install脚本。您可以使用此脚本安装您的配置,例如,通过回滚features或通过ctools export bonus更新主配置。
添加更多测试
“scripts”文件夹包含一些起始脚本,您可以使用这些脚本来自定义您测试所需的环境。有关测试放置位置和如何配置behat-pantheon.yml以进行Pantheon测试的详细信息,请参阅Behat目录中的README文件。