教學課程:搭 GitHub 配管線來源使用完整複製 - AWS CodePipeline

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

教學課程:搭 GitHub 配管線來源使用完整複製

您可以在中為 GitHub 來源動作選擇完整複製選項 CodePipeline。使用此選項可在管線建置動作中執行 Git 中繼資料的 CodeBuild 命令。

在本教學課程中,您將建立連線到 GitHub 儲存庫的管線、使用來源資料的完整複製選項,以及執行複製儲存庫並執行 Git 命令的 CodeBuild 組建。

注意

亞太區域 (香港)、非洲 (開普敦)、中東 (巴林)、歐洲 (蘇黎世) 或 AWS GovCloud (美國西部) 地區不提供此功能。若要參考其他可用動作,請參閱產品與服務整合 CodePipeline。如需在歐洲 (米蘭) 區域進行此動作的考量,請參閱中的附註CodeStarSourceConnection 適用於 Bitbucket 雲端 GitHub、 GitHub 企業伺服器、 GitLab .com 和 GitLab 自我管理動作

必要條件

開始之前,您必須執行以下作業:

  • 使用您的 GitHub 帳戶創建一個 GitHub 存儲庫。

  • 準備好您的 GitHub 憑據。當您使用設 AWS Management Console 定連線時,系統會要求您使用 GitHub 認證登入。

步驟 1:建立讀我檔案

建立 GitHub 儲存庫之後,請使用下列步驟新增 README 檔案。

  1. 登錄到您的 GitHub 存儲庫並選擇您的存儲庫。

  2. 若要建立新檔案,請選擇「新增檔案 > 建立新檔案」。命名文件README.md。文件並添加以下文本。

    This is a GitHub repository!
  3. 選擇 Commit changes (遞交變更)

    確定 README.md 檔案位於儲存庫的根層級。

第 2 步:創建管道並構建項目

在本節中,您可以採取下列動作建立管道:

  • 與 GitHub 存放庫和動作連線的來源階段。

  • 包含建置動作的 AWS CodeBuild 建置階段。

使用精靈建立管道
  1. 請在以下位置登入 CodePipeline 主控台:https://console.aws.amazon.com/codepipeline/

  2. Welcome (歡迎) 頁面、Getting started (入門) 頁面、或者 Pipelines (管道) 頁面上,選擇 Create pipeline (建立管道)

  3. Step 1: Choose pipeline settings (步驟 1:選擇管道設定)Pipeline name (管道名稱) 中,輸入 MyGitHubPipeline

  4. 管線類型中,針對本教學課程的目的選擇 V1。您也可以選擇 V2;但是請注意,管道類型在特性和價格上有所不同。如需詳細資訊,請參閱 管線類型

  5. Service role (服務角色) 中,選擇 New service role (新服務角色)

    注意

    如果您改為選擇使用現有的 CodePipeline 服務角色,請確定已將 codeconnections:UseConnection IAM 權限新增至服務角色政策。如需 CodePipeline 服務角色的指示,請參閱將權限新增至 CodePipeline 服務角色

  6. 進階設定底下,請保留預設值。在Artifact store (成品存放區) 中,針對您為管道所選取區域中的管道,選擇 Default location (預設位置),即可使用預設成品存放區 (例如指定為預設值的 ​Amazon S3 成品儲存貯體)。

    注意

    這不是原始碼的來源儲存貯體。這是管道的成品存放區。每個管道都需要有個別成品存放區,例如 S3 儲存貯體。

    選擇 Next (下一步)

  7. Step 2: Add source stage (步驟 2:新增來源階段) 頁面上,新增來源階段:

    1. 來源提供者中,選擇 GitHub (版本 2)

    2. 在「連線」下,選擇現有的連線或建立新的連線。若要建立或管理來 GitHub 源動作的連線,請參閱GitHub 連接

    3. 存放庫名稱中,選擇 GitHub存放庫的名稱。

    4. 在「分支名稱」中,選擇您要使用的儲存庫分支。

    5. 請確認已選取在原始程式碼變更時啟動管道選項。

    6. 在 [輸出成品格式] 下,選擇 [完整複製] 以啟用來源儲存庫的 Git 複製選項。只有提供的動作 CodeBuild 可以使用 Git 複製選項。您將步驟 3:更新 CodeBuild 服務角色原則以使用連線在本教學課程中使用來更新 CodeBuild 專案服務角色的權限,以使用此選項。

    選擇 Next (下一步)

  8. Add build stage (新增建置階段) 中,新增建置階段:

    1. Build provider (建置供應商) 中,選擇 AWS CodeBuild。允許 Region (區域) 預設為管道區域。

    2. 選擇建立專案

    3. Project name (專案名稱) 中,輸入此建置專案的名稱。

    4. Environment image (環境映像) 中,選擇 Managed image (受管映像)。針對 Operating system (作業系統),選擇 Ubuntu

    5. 針對 Runtime (執行時間),選擇 Standard (標準)。針對映像,選擇 aws/codebuild/standard:5.0

    6. 對於 Service role (服務角色),選擇 New service role (新服務角色)

      注意

      記下 CodeBuild 服務角色的名稱。在本教學課程的最後一個步驟中,您將需要角色名稱。

    7. BuildSpec 底下,針對 Build specifications (建置規格) 選擇 Insert build commands (插入建置命令)。選擇切換到編輯器,然後將以下內容粘貼到構建命令下。

      注意

      在構建規範的env部分中,確保啟用了 git 命令的憑據幫助程序,如本示例所示。

      version: 0.2 env: git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 # name: version #commands: # - command # - command pre_build: commands: - ls -lt - cat README.md build: commands: - git log | head -100 - git status - ls - git archive --format=zip HEAD > application.zip #post_build: #commands: # - command # - command artifacts: files: - application.zip # - location #name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
    8. 選擇繼續 CodePipeline。這將返回到 CodePipeline控制台並創建一個使用構建命令進行配置的 CodeBuild 項目。組建專案會使用服務角色來管理 AWS 服務 權限。此步驟可能需要數分鐘。

    9. 選擇下一步

  9. Step 4: Add deploy stage (步驟 4:新增部署階段) 頁面上,選擇 Skip deploy stage (跳過部署階段),然後再次選擇 Skip (跳過) 來接受警告訊息​。選擇下一步

  10. Step 5: Review (步驟 5:檢閱) 上,選擇 Create pipeline (建立管道)

步驟 3:更新 CodeBuild 服務角色原則以使用連線

初始管線執行會失敗,因為 CodeBuild 服務角色必須更新為使用連線的權限。將 codeconnections:UseConnection IAM 權限新增至您的服務角色政策。如需在 IAM 主控台中更新政策的指示,請參閱新增連線至 Bitbucket GitHub、 GitHub 企業伺服器或 GitLab .com 的 CodeBuild GitClone 權限

第 4 步:在構建輸出中查看存儲庫命令

  1. 成功更新服務角色後,請在失敗的 CodeBuild 階段中選擇「重試」。

  2. 管道成功執行之後,在成功的建置階段中,選擇 [檢視詳細資料]。

    在詳細資料頁面上,選擇記錄檔索引標籤。檢視組 CodeBuild 建輸出。這些指令會輸出所輸入變數的值。

    這些指令會輸出README.md檔案內容、列出目錄中的檔案、複製存放庫、檢視記錄,以及將存放庫封存為 ZIP 檔案。