[仅限PaaS]{class="badge informative" title="仅适用于云项目(Adobe管理的PaaS基础架构)和内部部署项目上的Adobe Commerce 。"}
比特桶集成
您可以将Bitbucket存储库配置为在推送代码更改时自动构建和部署环境。 此集成会将您的Bitbucket存储库与Adobe Commerce在云基础架构帐户中同步。
先决条件
- 对云基础架构项目上Adobe Commerce的管理员访问权限
- 本地环境中的
magento-cloud
CLI工具 - Bitbucket帐户
- 具有比特桶存储库的管理员访问权限
- 比特桶存储库的SSH访问密钥
准备存储库
从现有环境克隆Adobe Commerce on cloud infrastructure项目,并将项目分支迁移到空的新比特桶存储库,保留相同的分支名称。 关键是 要保留相同的Git树,以便您不会丢失云基础架构项目上的Adobe Commerce中的任何现有环境或分支。
-
从终端,登录到您的Adobe Commerce on cloud infrastructure项目。
code language-bash magento-cloud login
-
列出您的项目并复制项目ID。
code language-bash magento-cloud project:list
-
将项目克隆到本地环境。
code language-bash magento-cloud project:get <project-ID>
-
将您的Bitbucket存储库添加为远程存储库。
code language-bash git remote add origin git@bitbucket.org:<user-name>/<repo-name>.git
远程连接的默认名称可以是
origin
或magento
。 如果origin
存在,则可以选择其他名称,也可以重命名或删除现有引用。 请参阅git-remote文档。 -
验证是否正确添加了Bitbucket远程。
code language-bash git remote -v
预期响应:
code language-none origin git@bitbucket.org:<user-name>/<repo-name>.git (fetch) origin git@bitbucket.org:<user-name>/<repo-name>.git (push)
-
将项目文件推送至新的Bitbucket存储库。 请记住保持所有分支名称相同。
code language-bash git push -u origin master
如果您从新的Bitbucket存储库开始,您可能需要使用
-f
选项,因为远程存储库与您的本地副本不匹配。 -
验证Bitbucket存储库是否包含所有项目文件。
创建OAuth消费者
Bitbucket集成需要OAuth使用者。 您需要此使用者的OAuth key
和secret
来完成下一节。
要在Bitbucket 中创建OAuth使用者,请执行以下操作:
-
登录到您的Bitbucket帐户。
-
单击 设置 > 访问管理 > OAuth。
-
单击 添加消费者 并按如下方式对其进行配置:
note warning WARNING 不需要有效的 回调URL,但必须在此字段中输入值才能成功完成集成。 -
单击 保存。
-
单击使用者 名称 以显示您的OAuth
key
和secret
。 -
复制您的OAuth
key
和secret
以配置集成。
配置集成
-
从终端,导航到您的Adobe Commerce on cloud基础架构项目。
-
创建名为
bitbucket.json
的临时文件并添加以下内容,将尖括号中的变量替换为您的值:code language-json { "type": "bitbucket", "repository": "<bitbucket-user-name/bitbucket-repo-name>", "app_credentials": { "key": "<oauth-consumer-key>", "secret": "<oauth-consumer-secret>" }, "prune_branches": true, "fetch_branches": true, "build_pull_requests": true, "resync_pull_requests": true }
note tip TIP 请确保使用Bitbucket存储库的名称,而不是URL。 如果您使用URL,则集成会失败。 -
使用
magento-cloud
CLI工具将集成添加到您的项目中。note warning WARNING 以下命令使用Bitbucket存储库中的代码覆盖Adobe Commerce on cloud infrastructure项目中的_所有_代码。 这包括所有分支,包括 production
分支。 此操作立即发生且无法撤消。 作为最佳实践,在添加Bitbucket集成之前,请务必从Adobe Commerce on cloud infrastructure项目克隆所有分支,并将它们推送到Bitbucket存储库**。**code language-bash magento-cloud project:curl -p '<project-ID>' /integrations -i -X POST -d "$(< bitbucket.json)"
这会返回带有标头的长HTTP响应。 成功的集成会返回200或201状态代码。 状态400或更高表示出现错误。
-
删除临时
bitbucket.json
文件。 -
验证项目集成。
code language-bash magento-cloud integrations -p <project-ID>
code language-none +----------+-----------+--------------------------------------------------------------------------------+ | ID | Type | Summary | +----------+-----------+--------------------------------------------------------------------------------+ | <int-id> | bitbucket | Repository: bitbucket_Account/magento-int | | | | Hook URL: | | | | https://magento-url.cloud/api/projects/<project-id>/integrations/<int-id>/hook | +----------+-----------+--------------------------------------------------------------------------------+
记下 挂接URL 以在BitBucket中配置webhook。
在BitBucket中添加webhook
要与Cloud Git服务器通信事件(例如推送),需要为BitBucket存储库具有webhook。 正确执行本页中详细介绍的设置Bitbucket集成的方法时,会自动创建webhook。 请务必验证webhook以避免创建多个集成。
-
登录到您的Bitbucket帐户。
-
单击 存储库 并选择您的项目。
-
单击 存储库设置 > 工作流 > Webhooks。
-
在继续之前验证webhook。
如果挂接处于活动状态,请跳过剩余步骤并测试集成。 挂接的名称应类似于 "云基础架构上的Adobe Commerce <project_id>",挂接URL格式应类似于:
https://<zone>.magento.cloud/api/projects/<project_id>/integrations/<id>/hook
-
单击 添加webhook。
-
在 添加新webhook 视图中,编辑以下字段:
- 标题: Adobe Commerce集成
- URL:使用您
magento-cloud
集成列表中的挂接URL - 触发器:默认为基本 存储库推送
-
单击 保存。
测试集成
配置Bitbucket集成后,您可以使用magento-cloud
CLI验证集成是否可正常工作:
magento-cloud integration:validate
或者,您也可以通过将简单的更改推送到Bitbucket存储库来进行测试。
-
创建测试文件。
code language-bash touch test.md
-
提交更改并将其推送到您的Bitbucket存储库。
code language-bash git add . && git commit -m "Testing Bitbucket integration" && git push
-
登录到Cloud Console并验证是否显示提交消息以及是否部署项目。
创建云分支
Bitbucket集成无法在Adobe Commerce on cloud基础架构项目中激活新环境。 如果您使用Bitbucket创建环境,则必须手动激活该环境。 为避免此额外步骤,最佳做法是使用magento-cloud
CLI工具或Cloud Console创建环境。
要激活使用Bitbucket 创建的分支,请执行以下操作:
-
使用
magento-cloud
CLI推送分支。code language-bash magento-cloud environment:push from-bitbucket
code language-none Pushing from-bitbucket to the new environment from-bitbucket Activate from-bitbucket after pushing? [Y/n] y Parent environment [master]: integration --- (Validation and activation messages)
-
验证环境是否处于活动状态。
code language-bash magento-cloud environment:list
code language-none Your environments are: +---------------------+----------------+--------+ | ID | Name | Status | +---------------------+----------------+--------+ | master | Master | Active | | integration | integration | Active | | from-bitbucket * | from-bitbucket | Active | +---------------------+----------------+--------+ * - Indicates the current environment
创建环境后,您可以使用常规Git命令将相应的分支推送到远程Bitbucket存储库。 对您在Bitbucket中的分支所做的后续更改会自动构建和部署环境。
删除集成
您可以安全地从项目中移除Bitbucket集成,而不会影响您的代码。
要删除Bitbucket集成:
-
从终端,登录到您的Adobe Commerce on cloud infrastructure项目。
-
列出您的集成。 您需要Bitbucket集成ID才能完成下一步。
code language-bash magento-cloud integration:list
-
删除集成。
code language-bash magento-cloud integration:delete <int-ID>
此外,您可以通过登录到Bitbucket帐户并撤销帐户 设置 页面上的OAuth授权来删除Bitbucket集成。
Bitbucket服务器集成
要使用Bitbucket服务器集成,您需要满足以下条件:
- 比特段访问令牌 — 生成一个令牌,授予项目
read
的访问权限和存储库admin
的访问权限 - Bitbucket服务器URL — 添加Bitbucket实例的基本URL
虽然您可以使用Cloud CLI来完成Bitbucket服务器集成步骤,但完整的命令如下所示:
magento-cloud integration:add --type=bitbucket_server --base-url=<bitbucket-url> --username=<username> --token=<bitbucket-access-token> --project=<project-ID>
使用help命令了解更多使用要求和选项: magento-cloud integration:add --help