本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:搭 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 檔案。
-
登錄到您的 GitHub 存儲庫並選擇您的存儲庫。
-
若要建立新檔案,請選擇「新增檔案 > 建立新檔案」。命名文件
README.md
。文件並添加以下文本。This is a GitHub repository!
-
選擇 Commit changes (遞交變更)。
確定
README.md
檔案位於儲存庫的根層級。
第 2 步:創建管道並構建項目
在本節中,您可以採取下列動作建立管道:
-
與 GitHub 存放庫和動作連線的來源階段。
-
包含建置動作的 AWS CodeBuild 建置階段。
使用精靈建立管道
-
請在以下位置登入 CodePipeline 主控台:https://console.aws.amazon.com/codepipeline/
。 -
在 Welcome (歡迎) 頁面、Getting started (入門) 頁面、或者 Pipelines (管道) 頁面上,選擇 Create pipeline (建立管道)。
-
在 Step 1: Choose pipeline settings (步驟 1:選擇管道設定) 的 Pipeline name (管道名稱) 中,輸入
MyGitHubPipeline
。 -
在管線類型中,針對本教學課程的目的選擇 V1。您也可以選擇 V2;但是請注意,管道類型在特性和價格上有所不同。如需詳細資訊,請參閱 管線類型。
-
在 Service role (服務角色) 中,選擇 New service role (新服務角色)。
注意
如果您改為選擇使用現有的 CodePipeline 服務角色,請確定已將
codeconnections:UseConnection
IAM 權限新增至服務角色政策。如需 CodePipeline 服務角色的指示,請參閱將權限新增至 CodePipeline 服務角色。 -
在進階設定底下,請保留預設值。在Artifact store (成品存放區) 中,針對您為管道所選取區域中的管道,選擇 Default location (預設位置),即可使用預設成品存放區 (例如指定為預設值的 Amazon S3 成品儲存貯體)。
注意
這不是原始碼的來源儲存貯體。這是管道的成品存放區。每個管道都需要有個別成品存放區,例如 S3 儲存貯體。
選擇 Next (下一步)。
-
在 Step 2: Add source stage (步驟 2:新增來源階段) 頁面上,新增來源階段:
-
在來源提供者中,選擇 GitHub (版本 2)。
-
在「連線」下,選擇現有的連線或建立新的連線。若要建立或管理來 GitHub 源動作的連線,請參閱GitHub 連接。
-
在存放庫名稱中,選擇 GitHub存放庫的名稱。
-
在「分支名稱」中,選擇您要使用的儲存庫分支。
-
請確認已選取在原始程式碼變更時啟動管道選項。
-
在 [輸出成品格式] 下,選擇 [完整複製] 以啟用來源儲存庫的 Git 複製選項。只有提供的動作 CodeBuild 可以使用 Git 複製選項。您將步驟 3:更新 CodeBuild 服務角色原則以使用連線在本教學課程中使用來更新 CodeBuild 專案服務角色的權限,以使用此選項。
選擇 Next (下一步)。
-
-
在 Add build stage (新增建置階段) 中,新增建置階段:
-
在 Build provider (建置供應商) 中,選擇 AWS CodeBuild。允許 Region (區域) 預設為管道區域。
-
選擇建立專案。
-
在 Project name (專案名稱) 中,輸入此建置專案的名稱。
-
在 Environment image (環境映像) 中,選擇 Managed image (受管映像)。針對 Operating system (作業系統),選擇 Ubuntu。
-
針對 Runtime (執行時間),選擇 Standard (標準)。針對映像,選擇 aws/codebuild/standard:5.0。
-
對於 Service role (服務角色),選擇 New service role (新服務角色)。
注意
記下 CodeBuild 服務角色的名稱。在本教學課程的最後一個步驟中,您將需要角色名稱。
-
在 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
-
選擇繼續 CodePipeline。這將返回到 CodePipeline控制台並創建一個使用構建命令進行配置的 CodeBuild 項目。組建專案會使用服務角色來管理 AWS 服務 權限。此步驟可能需要數分鐘。
-
選擇下一步。
-
-
在 Step 4: Add deploy stage (步驟 4:新增部署階段) 頁面上,選擇 Skip deploy stage (跳過部署階段),然後再次選擇 Skip (跳過) 來接受警告訊息。選擇下一步。
-
在 Step 5: Review (步驟 5:檢閱) 上,選擇 Create pipeline (建立管道)。
步驟 3:更新 CodeBuild 服務角色原則以使用連線
初始管線執行會失敗,因為 CodeBuild 服務角色必須更新為使用連線的權限。將 codeconnections:UseConnection
IAM 權限新增至您的服務角色政策。如需在 IAM 主控台中更新政策的指示,請參閱新增連線至 Bitbucket GitHub、 GitHub 企業伺服器或 GitLab .com 的 CodeBuild GitClone 權限。
第 4 步:在構建輸出中查看存儲庫命令
-
成功更新服務角色後,請在失敗的 CodeBuild 階段中選擇「重試」。
-
管道成功執行之後,在成功的建置階段中,選擇 [檢視詳細資料]。
在詳細資料頁面上,選擇記錄檔索引標籤。檢視組 CodeBuild 建輸出。這些指令會輸出所輸入變數的值。
這些指令會輸出
README.md
檔案內容、列出目錄中的檔案、複製存放庫、檢視記錄,以及將存放庫封存為 ZIP 檔案。