位元貯體整合

您可以設定Bitbucket存放庫,以便在推送程式碼變更時自動建立及部署環境。 此整合會在雲端基礎結構帳戶上,將您的Bitbucket存放庫與Adobe Commerce同步。

NOTE
Adobe強烈建議您在雲端基礎結構專案上為Adobe Commerce使用私人存放庫,以保護任何專屬資訊或開發工作,例如擴充功能和敏感設定。

必要條件

  • 雲端基礎結構專案上Adobe Commerce的管理員存取權
  • 本機環境中的magento-cloud CLI工具
  • 位元貯體帳戶
  • Bitbucket存放庫的管理員存取權
  • 位元貯體存放庫的SSH存取金鑰

準備您的存放庫

從現有環境複製雲端基礎結構專案上的Adobe Commerce,並將專案分支移轉至新的空位元貯體存放庫,保留相同的分支名稱。 關鍵 ​在於要保留相同的Git樹狀結構,這樣您就不會遺失雲端基礎結構專案中Adobe Commerce的任何現有環境或分支。

  1. 從終端機,在雲端基礎結構專案上登入您的Adobe Commerce。

    code language-bash
    magento-cloud login
    
  2. 列出您的專案並複製專案ID。

    code language-bash
    magento-cloud project:list
    
  3. 將專案複製到您的本機環境。

    code language-bash
    magento-cloud project:get <project-ID>
    
  4. 將您的Bitbucket存放庫新增為遠端。

    code language-bash
    git remote add origin git@bitbucket.org:<user-name>/<repo-name>.git
    

    遠端連線的預設名稱可以是originmagento。 如果origin存在,您可以選擇不同的名稱,或者重新命名或刪除現有的參照。 請參閱git-remote檔案

  5. 確認您已正確新增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)
    
  6. 將專案檔案推送至新的Bitbucket存放庫。 請記得保持所有分支名稱相同。

    code language-bash
    git push -u origin master
    

    如果您從新的Bitbucket存放庫開始,您可能需要使用-f選項,因為遠端存放庫不符合您的本機復本。

  7. 確認您的Bitbucket存放庫包含所有專案檔案。

建立OAuth消費者

Bitbucket整合需要OAuth消費者。 您需要此消費者的OAuth keysecret以完成下一節。

若要在Bitbucket ​中建立OAuth取用者:

  1. 登入您的Bitbucket帳戶。

  2. 按一下​ 設定 > 存取管理 > OAuth

  3. 按一下​ 新增消費者,並依照下列方式設定:

    Bitbucket OAuth取用者設定

    note warning
    WARNING
    不需要有效的​ 回撥URL,但您必須在此欄位中輸入值,才能成功完成整合。
  4. 按一下​ 儲存

  5. 按一下消費者​ 名稱 ​以顯示您的OAuth keysecret

  6. 複製您的OAuth keysecret以設定整合。

設定整合

  1. 從終端機,導覽至您在雲端基礎結構專案上的Adobe Commerce 。

  2. 建立名為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,整合將會失敗。
  3. 使用magento-cloud CLI工具將整合新增至專案。

    note warning
    WARNING
    以下命令會使用Bitbucket存放庫中的程式碼覆寫Adobe Commerce on cloud infrastructure專案中的​_所有_​程式碼。 這包括所有分支,包括production分支。 此動作會立即發生且無法還原。 在雲端基礎結構專案上從Adobe Commerce複製所有分支,並在新增Bitbucket整合之前​ 將其推送到Bitbucket存放庫,這是最佳作法。
    code language-bash
    magento-cloud project:curl -p '<project-ID>' /integrations -i -X POST -d "$(< bitbucket.json)"
    

    這會傳回含有標頭的長HTTP回應。 成功的整合會傳回200或201狀態代碼。 若狀態為400或以上,表示發生錯誤。

  4. 刪除暫存bitbucket.json檔案。

  5. 驗證專案整合。

    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以避免建立多個整合。

  1. 登入您的Bitbucket帳戶。

  2. 按一下​ 存放庫 ​並選取您的專案。

  3. 按一下「存放庫設定」>「工作流程」>「Webhooks」。

  4. 請先驗證webhook再繼續。

    如果掛接為作用中,請略過其餘步驟,然後測試整合。 掛接的名稱應該類似於​ "雲端基礎結構上的Adobe Commerce <project_id>",並且掛接URL格式類似於: https://<zone>.magento.cloud/api/projects/<project_id>/integrations/<id>/hook

  5. 按一下​ 新增webhook

  6. 在​ 新增webhook ​檢視中,編輯下列欄位:

    • 標題: Adobe Commerce整合
    • URL:使用您magento-cloud整合清單中的連結URL
    • 觸發器:預設為基本的​ 存放庫推送
  7. 按一下​ 儲存

測試整合

設定Bitbucket整合後,您可以使用magento-cloud CLI來驗證整合運作中:

magento-cloud integration:validate

或者,您也可以推送簡單的變更至位元貯體存放庫以進行測試。

  1. 建立測試檔案。

    code language-bash
    touch test.md
    
  2. 認可變更並將其推播至您的Bitbucket存放庫。

    code language-bash
    git add . && git commit -m "Testing Bitbucket integration" && git push
    
  3. 登入Cloud Console並確認您的認可訊息已顯示,且您的專案已部署。

    正在測試Bitbucket整合

建立雲端分支

Bitbucket整合無法在雲端基礎結構專案的Adobe Commerce中啟用新環境。 如果您使用Bitbucket建立環境,則必須手動啟動環境。 若要避免這個額外的步驟,最佳做法是使用magento-cloud CLI工具或Cloud Console建立環境。

若要啟用以Bitbucket ​建立的分支:

  1. 使用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)
    
  2. 確認環境為作用中。

    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整合

  1. 從終端機,在雲端基礎結構專案上登入您的Adobe Commerce。

  2. 列出您的整合。 您需要Bitbucket整合ID才能完成下一步。

    code language-bash
    magento-cloud integration:list
    
  3. 刪除整合。

    code language-bash
    magento-cloud integration:delete <int-ID>
    

此外,您也可以登入您的Bitbucket帳戶並撤銷帳戶​ 設定 ​頁面上的OAuth授予,以移除Bitbucket整合。

Bitbucket伺服器整合

若要使用Bitbucket伺服器整合,您需要下列專案:

雖然您可以使用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

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26