padilla-digital/wp-template

此包的最新版本(2.4.0)没有可用的许可证信息。

为Pantheon托管站点提供的WordPress启动模板

2.4.0 2019-10-25 19:06 UTC

This package is not auto-updated.

Last update: 2024-09-21 07:20:23 UTC


README

CircleCI

此存储库是使用Composer、持续集成(CI)、自动化测试和Pantheon的现代WordPress工作流程的参考实现和起始状态。尽管这是一个好的起点,但你仍需要为你的项目自定义和维持CI/测试设置。

此存储库应通过Terminus Build Tools插件一次性复制,但也可以用作模板。不应直接克隆或分叉。

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

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

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

重要文件和目录

/web

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

/web/wp

即使在/web目录中,您也可能注意到其他目录和文件的位置与默认WordPress安装不同。WordPress允许在它自己的目录中安装WordPress核心,这在使用Composer安装WordPress时是必要的。

请参阅/web/wp-config.php以获取关键设置,如WP_SITEURL,它必须更新,以便WordPress核心在重新定位的/web/wp目录中正常工作。存储库中目录的整体布局受Bedrock的启发,但并不完全相同。

composer.json

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

应使用composer.json中的require部分来指定任何您的Web项目需要的依赖项,即使这些依赖项可能在非生产环境中才使用。所有require依赖项都将推送到Pantheon。

应使用require-dev部分来指定不属于Web应用程序但构建或测试项目所必需的依赖项。一些示例包括php_codesnifferphpunit。开发依赖项不会部署到Pantheon。

如果您只是在GitHub上浏览此存储库,您可能看不到上述某些目录,例如web/wp。这是因为WordPress核心及其插件是通过Composer安装的,并在.gitignore文件中被忽略。

本项目使用自定义的,Pantheon 的 WordPress Composer 版本作为 WordPress 核心的源。

通过composer.json文件将第三方 WordPress 依赖项(如插件和主题)添加到项目中。composer.lock文件记录了依赖项的确切版本。Composer 的installer-paths用于确保 WordPress 依赖项下载到相应的目录。

非 WordPress 依赖项下载到/vendor目录。

.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

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

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

  • .ci/test/static/run运行PHP CodeSnifferWordPress 编码标准、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 基础设施上测试完全构建的 WordPress 网站。WordHat用于帮助集成 Behat 和 WordPress。

  • .ci/test/behat/initialize删除 Behat 测试中的任何现有 WordPress 用户并创建要测试的环境的备份
  • .ci/test/behat/run 设置 Behat 所需的动态信息环境变量 BEHAT_PARAMS,并通过 Terminus 配置使用 wp-cli,创建 Behat 测试所需的 WordPress 用户,启动无头 Chrome 并运行 Behat。
  • .ci/test/behat/cleanup 恢复之前制作的数据库备份,删除 Behat 测试使用的 WordPress 用户,并保存 Behat 捕获的屏幕截图。
  • tests/behat/behat-pantheon.yml 是 Behat 配置文件,兼容运行针对 Pantheon 站点的测试。
  • tests/behat/tests/behat/features Behat 测试文件(以 .feature 扩展名)应存储的位置。提供的示例测试需要替换为特定项目的测试。
    • tests/behat/tests/behat/features/visit-homepage.feature 一个 Behat 测试文件,用于访问主页并验证 200 响应。
    • tests/behat/tests/behat/features/admin-login.feature 一个 Behat 测试文件,用于以管理员身份登录 WordPress 控制面板并验证访问新建用户。
    • tests/behat/tests/behat/features/admin-login.feature 一个 Behat 测试文件,用于以管理员身份登录 WordPress 控制面板,更新 blognameblogdescription 设置,清除 Pantheon 缓存,访问主页,并验证更新后的博客名称和描述出现。

Github Actions

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

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

在本地使用 Lando

要开始使用 Lando 进行本地开发,请完成以下一次性步骤。请注意,Lando 是一个独立产品,并由 Pantheon 支持。如需进一步帮助,请参阅 Lando 文档

  • 安装 Lando(如果尚未安装)。
  • 从 GitHub(或 GitLab 或 BitBucket)本地克隆您的项目存储库。
  • 根据 WordPress 配方 手动创建一个 .lando.yml 文件,并配置您的首选设置。
  • 运行 lando start 来启动 Lando。
    • 保存本地站点 URL。它应该类似于 https://<PROJECT_NAME>.lndo.site
  • 运行 lando composer install --no-ansi --no-interaction --optimize-autoloader --no-progress 来下载依赖项。
  • 运行 lando pull --code=none 来下载来自 Pantheon 的媒体文件和数据库。
  • 访问上述保存的本地站点 URL。

现在您应该能够本地编辑您的站点。上述步骤在后续启动中无需重复完成。您可以使用 lando stop 停止 Lando,然后使用 lando start 再次启动它。

警告:请勿在 Lando 和 Pantheon 之间直接推送/拉取代码。所有代码都应推送到 GitHub,并通过持续集成服务(如 CircleCI)部署到 Pantheon。

Composer、Terminus 和 wp-cli 命令应在 Lando 中运行,而不是在主机机器上运行。这通过在所需命令前加上 lando 来完成。例如,在更改 composer.json 后运行 lando composer update 而不是 composer update