GitHub Enterprise Server 範例 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

GitHub Enterprise Server 範例

AWS CodeBuild支援 GitHub 企業級服務器作為來源儲存庫。此範例示範如何設定 CodeBuild 專案時 GitHub 企業服務器存儲庫已安裝證書。它也會顯示如何啟用 webhoks,使 CodeBuild 每次將程式碼變更推送至您的 GitHub Enterprise Server 存儲庫。

先決條件

  1. 為您的 CodeBuild 專案。建議您建立 GitHub 並產生此使用者的個人存取字符。將它複製至剪貼簿,以在您建立 CodeBuild 專案。如需詳細資訊,請參閱「」為命令行建立個人存取字符在 GitHub 幫助網站。

    當您建立個人存取字符時,請在定義中包含 repo 範圍。

  2. 下載您的證書: GitHub 企業伺服器。 CodeBuild 會使用憑證建立與儲存庫的受信任 SSL 連接。

    Linux/macOS 用戶端:

    從終端機視窗中,執行下列命令:

    echo -n | openssl s_client -connect HOST:PORTNUMBER \ | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /folder/filename.pem

    將命令中的預留位置取代為下列值:

    HOST。您的 IP 地址 GitHub Enterprise Server 存儲庫。

    PORTNUMBER。您用來連線的連接埠號碼 (例如 443)。

    folder。從中下載您憑證的資料夾。

    filename。您憑證檔案的檔案名稱。

    重要

    將憑證儲存為 .pem 檔案。

    Windows 用戶端:

    使用瀏覽器從 GitHub 企業伺服器。若要查看網站的憑證詳細資訊,請選擇鎖定圖示。如需如何匯出憑證的資訊,請參閱您的瀏覽器文件。

    重要

    將憑證儲存為 .pem 檔案。

  3. 將憑證檔案上傳至 S3 儲存貯體。如需如何建立 S3 儲存貯體的資訊,請參閱如何建立 S3 儲存貯體? 如需如何將物件上傳至 S3 儲存貯體的資訊,請參閱如何將檔案和資料夾上傳至儲存貯體?

    注意

    此儲存貯體必須位於相同的AWS區域作為構建。例如,如果您指示 CodeBuild 若要在美國東部 (俄亥俄) 區域執行建置,則儲存貯體必須位在美國東部 (俄亥俄) 區域。

建立以 GitHub Enterprise Server 為來源儲存庫的建置專案並啟用 Webhook (主控台)

  1. 開啟AWS CodeBuild主控台https://console.aws.amazon.com/codesuite/codebuild/home

  2. 如果 CodeBuild ,選擇建立組建專案。否則,在導覽窗格中,展開建置,選擇組建專案選擇,接著選擇建立組建專案

  3. Project name (專案名稱) 中,輸入此建置專案的名稱。組建專案名稱在每個 AWS 帳戶中都必須是唯一的。您還可以包含生成項目的可選描述,以幫助其他用户瞭解此項目用於什麼。

  4. Source (來源)Source provider (來源提供者) 中,選擇 GitHub Enterprise

    • 針對 Personal Access Token (個人存取字符),貼上您已複製至剪貼簿的字符,然後選擇 Save Token (儲存字符)。InRepository URL (儲存庫 URL)輸入您的 GitHub Enterprise Server 存儲庫。

      注意

      您只需要輸入及儲存個人存取字符一次。日後所有的 AWS CodeBuild 專案會使用該字符。

    • Repository URL (儲存庫 URL) 中,輸入儲存庫的路徑,包括儲存庫的名稱。

    • 展開 Additional configuration (其他組態)

    • 選取 Rebuild every time a code change is pushed to this repository (在每次將程式碼變更推送至儲存庫時重建),以便每次程式碼變更推送至此儲存庫時就重建。

    • 選擇啟用不安全的 SSL忽略 SSL 警告,在連線至 GitHub 企業服務器項目存儲庫。

      注意

      建議只將 Enable insecure SSL (啟用不安全 SSL) 用於測試。不應用於生產環境。

  5. Environment (環境) 中:

    針對 Environment image (環境映像),執行下列其中一項作業:

    • 若要使用 AWS CodeBuild 管理的 Docker 映像,請選擇 Managed image (受管映像),然後從 Operating system (作業系統)Runtime (執行時間)Image (映像)Image version (映像版本) 下拉式清單進行選擇。若可用,請從 Environment type (環境類型) 進行選擇。

    • 若要使用另一個 Docker 映像,請選擇 Custom image (自訂映像)。適用於環境類型,選擇手臂LinuxLinux GPU, 或視窗。如果選擇其他登錄檔, 用於外部註冊機構 URL中,在 Docker Hub 中輸入 Docker 映像的名稱和標籤,使用docker repository/docker image name。如果選擇Amazon ECR,使用Amazon ECR 儲存庫Amazon ECR 映像資訊反應來選擇AWS帳户。

    • 若要使用私有 Docker 映像,請選擇自訂映像。適用於環境類型,選擇手臂LinuxLinux GPU, 或視窗。針對 Image registry (映像登錄) 選擇 Other registry (其他登錄),然後輸入私人 Docker 映像的憑證的 ARN。登入資料必須是由 Secrets Manager 所建立。如需詳細資訊,請參閱「」是什麼AWS Secrets Manager?中的AWS Secrets Manager使用者指南

  6. Service role (服務角色) 中,執行下列其中一項作業:

    • 如果您沒有 CodeBuild 服務角色,選擇新服務角色。InRole name (角色名稱)中,輸入新角色的名稱。

    • 如果您有 CodeBuild 服務角色,選擇Esternal 服務角色。In角色 ARN下,選擇服務角色。

    注意

    當您使用主控台來建立或更新建置專案時,可以建立 CodeBuild 服務角色。根據預設,此角色只能與該建置專案搭配運作。如果您使用主控台將此服務角色與另一個建置專案建立關聯,則會更新此角色以與其他建置專案搭配運作。服務角色最多可以與 10 個組建專案搭配運作。

  7. 展開 Additional configuration (其他組態)

    如果您想要 CodeBuild 使用您的 VPC:

    • 適用於VPC下 VPC 擇 CodeBuild 使用。

    • 適用於VPC 子網路中,選擇包含 CodeBuild 使用。

    • 適用於VPC 安全組中,選擇 CodeBuild 使用來允許存取 VPC 中的資源。

    如需詳細資訊,請參閱 使用AWS CodeBuildAmazon Virtual Private Cloud

  8. InBuildSpec執行下列其中一項動作:

    • 選擇使用 Buildspec 檔案以使用來源碼根目錄中的 buildspec.yml 檔案。

    • 選擇插入構建命令使用控制台插入構建命令。

    如需詳細資訊,請參閱 Buildspec 參考

  9. Artifacts (成品) 中,針對 Type (類型),執行下列其中一項操作:

    • 如果您不要建立建置輸出成品,則請選擇 No artifacts (無成品)

    • 若要將建置輸出存放至 S3 儲存貯體,請選擇Amazon S3,然後執行下列作業:

      • 如果您想要使用專案名稱做為組建輸出 ZIP 檔案或資料夾名稱,則請將 Name (名稱) 保留空白。否則請輸入名稱。根據預設,成品名稱是專案名稱。如果想使用不同的名稱,請在成品名稱方塊中輸入名稱。如果要輸出 ZIP 檔案,請包含 zip 副檔名。

      • 針對 Bucket name (儲存貯體名稱),選擇輸出儲存貯體的名稱。

      • 如果您在本程序稍早選擇 Insert build commands (插入組建命令),然後針對 Output files (輸出檔案),輸入要放入組建輸出 ZIP 檔案或資料夾之組建中的檔案位置。針對多個位置,以逗號區隔每個位置 (例如,appspec.yml, target/my-app.jar)。如需詳細資訊,請參閱Buildspec 語法中的 files 描述。

  10. 針對 Cache type (快取類型),選擇以下其中一項:

    • 如果您不想要使用快取,請選擇 No cache (無快取)

    • 如果您想要使用 Amazon S3 緩存,請選擇Amazon S3,然後執行下列作業:

      • 針對 Bucket (儲存貯體),選擇存放快取的 S3 儲存貯體名稱。

      • (可選)對於緩存路徑前綴,輸入 Amazon S3 路徑前綴。Cache path prefix (快取路徑字首) 值類似目錄名稱。它可讓您將快取存放至儲存貯體的相同目錄下方。

        重要

        請不要在路徑字首結尾附加尾端斜線 (/)。

    • 如果您想要使用本機快取,請選擇 Local (本機),然後選擇一或多個本機快取模式。

      注意

      「Docker layer cache」(Docker 層快取) 模式僅適用於 Linux。如果您選擇此模式,您的專案必須以特殊權限模式執行。

    使用快取可節省大量建置時間,因為建置環境的可重複使用部分存放在快取中,並用於各建置。如需在 buildspec 檔案中指定快取的詳細資訊,請參閱Buildspec 語法。如需快取的詳細資訊,請參閱「在 AWS CodeBuild 中建立快取」。

  11. 選擇 Create build project (建立建置專案)。在組建專案頁面上,選擇 Start build (啟動組建)

  12. 如果您已在 Source (來源) 中啟用 Webhook,則會出現 Create webhook (建立 Webhook) 對話方塊,其中包含 Payload URL (有效負載 URL)Secret (秘密) 的值。

    重要

    Create webhook (建立 Webhook) 對話方塊只會出現一次。複製有效負載 URL 和秘密金鑰。當您在 GitHub 企業伺服器。

    如果您需要再次產生有效負載 URL 和私有金鑰,則必須先從 GitHub Enterprise Server 存儲庫。在您的 CodeBuild 專案中,清除 Webhook 核取方塊,然後選擇 Save (儲存)。然後,您可以創建或更新一個 CodeBuild 項目Webhook複選框處於選中狀態。Create webhook (建立 Webhook) 對話方塊會再次出現。

  13. In GitHub 登入資料庫,選擇 CodeBuild 項目被存儲。

  14. 依序選擇 Settings (設定)Hooks & services (關聯和服務)Add webhook (新增 Webhook)

  15. 輸入有效負載 URL 和秘密金鑰,並接受其他欄位的預設值,然後選擇 Add webhook (新增 Webhook)

  16. 返回您的 CodeBuild 專案。關閉 Create webhook (建立 Webhook) 對話方塊,然後選擇 Start build (開始建置)