如何为 WordPress 和 Drupal Web 开发使用 Bitbucket Pipelines 进行 CI/CD
在构建网站的世界里,快速且无误地工作非常重要。持续集成和持续部署 (CI/CD) 通过自动化我们的部分工作来实现这一点。在这篇文章中,我将演示如何利用 Bitbucket Pipelines 自动化各种任务,例如测试和部署使用 Drupal 和 WordPress(两个广泛使用的内容管理系统)构建的项目。
Bitbucket 和 Git 简介
在探索 Bitbucket Pipelines 的细微差别之前,了解 Bitbucket 本身至关重要。Bitbucket 是 Atlassian 套件的一部分,是一个基于 Web 的版本控制存储库托管服务。它广泛用于 Git 存储库管理,提供私有和公共存储库。此功能,尤其是其免费套餐中提供私有存储库的功能,使 Bitbucket 成为团队和个人开发者的首选。它不仅仅是代码托管;Bitbucket 与 Jira 和 Bamboo 等其他 Atlassian 产品集成,为从规划到部署的软件开发创建了一个无缝的生态系统。 Git 是 Bitbucket 的支柱,是一个分布式版本控制系统,使多个开发人员能够有效地协作处理同一代码库。
什么是 Bitbucket Pipelines?
想象一个工具,在你将更改推送到远程存储库的那一刻就会启动。这就是 Bitbucket Pipelines。它集成在你的 Bitbucket 存储库中,每次更新代码时都会自动化各种任务。这些任务在名为 bitbucket-pipelines.yml
的配置文件中定义。它可以执行的自动化步骤包括但不限于:
- 测试代码:运行单元测试、集成测试和其他自动化测试,以确保代码质量。
- 端到端测试:运行 E2E 测试以模拟真实用户场景并验证应用程序的完整功能和用户体验。
- 部署代码:自动将代码部署到不同的环境,如暂存或生产环境。
- 构建工件:将代码编译或将应用程序构建成可部署的包或可执行文件。
- 运行脚本:执行自定义脚本以达到各种目的,例如数据库迁移或清理任务。
- 代码检查和分析:检查代码是否存在语法错误、格式问题和潜在错误。
- 通知:根据管道步骤的结果发送通知或警报。
- Docker 操作:构建、运行和将 Docker 镜像推送到注册表。
- 安全扫描:执行安全扫描以识别代码库中的漏洞。
- 文档生成:根据代码更改自动生成和更新文档。
- 性能测试:进行负载和性能测试以评估应用程序在高压下的行为。
凭借这些功能,Bitbucket Pipelines 提高了软件开发过程的效率、一致性和可靠性。
使用 Bitbucket Pipelines 设置存储库
1. 创建或选择你的存储库
- 步骤 1:登录你的 Bitbucket 帐户。
- 步骤 2:创建新存储库或选择一个现有存储库来设置 Bitbucket Pipelines。
2. 初始化 Bitbucket Pipelines
- 步骤 3:在你的存储库中,导航到左侧边栏中的“Pipelines”部分。

- 步骤 4:点击“创建你的第一个管道”。Bitbucket 将显示各种模板。

- 步骤 5:选择最适合你项目技术栈的模板。例如,为基于 PHP 的项目选择“构建 PHP 应用程序”。

- 步骤 6:Bitbucket 将根据所选模板显示生成的
bitbucket-pipelines.yml
文件。检查管道配置以确保其符合项目的要求。此文件包含用于测试和代码检查 PHP 代码的预定义步骤。 - 步骤 7:你可以在 Bitbucket 界面中直接编辑该文件,以根据你的项目需求自定义管道步骤。确保定义项目所需的任何其他构建、测试或部署步骤。
- 步骤 8:查看并选择性编辑配置后,点击“提交文件”将
bitbucket-pipelines.yml
文件保存到你的存储库。

3. 添加 SSH 密钥以进行服务器访问(可选)
- 步骤 9:如果你的部署过程需要 SSH 访问服务器,请导航到“存储库设置”,然后在“Pipelines”下选择“SSH 密钥”。
- 步骤 10:在这里,你可以生成新的 SSH 密钥对,或通过点击“使用我自己的密钥”添加现有密钥。
- 步骤 11:如果你添加现有密钥,请在提供的空间中输入私钥并为其添加标签(例如,“部署服务器”)。
- 步骤 12:为了使 SSH 密钥正常工作,你还需要在“已知主机”下添加服务器的主机信息。输入主机地址并获取主机的指纹,以确保安全连接。
- 步骤 13:保存 SSH 密钥和已知主机详细信息。

4. 定义存储库变量
- 步骤 14:转到“存储库设置”,然后在“Pipelines”下点击“存储库变量”。
- 步骤 15:点击“添加”按钮创建一个新变量。
- 步骤 16:输入变量的“名称”,例如
DEV_SERVER
,以及与之对应的“值”。 - 步骤 17:如果变量是敏感的,请确保选中“已加密”复选框,以在日志中隐藏该值。
- 步骤 18:点击“添加”以保存变量。

5. 定义部署环境
- 步骤 19:在“存储库设置”中,导航到“Pipelines”下的“部署”。
- 步骤 20:定义你的部署环境。Bitbucket 在以下类别下支持多达一百个部署环境:
测试
、暂存
和生产
。 - 步骤 21:对于每个环境,你可以指定不同的配置。输入特定于环境的详细信息,例如 URL、服务器路径或任何其他相关数据,作为存储库变量,并在前面加上环境名称,例如
TEST_
、STAGE_
和PROD_
以便清晰。 - 步骤 22:确保每个环境的任何敏感信息都已加密。Bitbucket 将在日志和 UI 中屏蔽加密变量。

6. 完成设置
- 步骤 23:提交对
bitbucket-pipelines.yml
文件的任何更改。 - 步骤 24:将更改推送到你的存储库以触发管道。
- 步骤 25:在部署过程中使用
ignorelist.txt
。作为部署步骤的一部分,尤其是在使用 rsync 同步文件时,管理要传输到生产环境的文件非常重要。为此,我们使用一个名为ignorelist.txt
的特殊文件。此文件包含应在 rsync 过程中排除的所有文件和目录的列表,以防止覆盖或不必要地传输文件。

有关 bitbucket-pipelines.yml
配置的实际示例,请访问此存储库:Bitbucket Pipelines 示例。值得注意的是,这个面向 Drupal 的示例说明了在云中为 Drupal 项目运行 composer install
。这些示例可以作为自定义你自己的管道的有用起点。
7. 监控你的管道
步骤 26:每次推送后检查“Pipelines”部分以监控执行情况并查看日志。

最终想法
总而言之,Bitbucket Pipelines 为 Web 开发带来了极大的便利和效率。它简化了团队协作、测试和部署,使我们的工作更加顺畅。
请记住,CI/CD 的世界总是在不断发展。我所涵盖的只是一个开始。随着你更多地使用 Bitbucket Pipelines,你将学会新的方法来使其更好地满足你的需求。继续探索并改进你的开发过程。祝你调试愉快!