教學課程:使用 Git 標籤啟動管道 - AWS CodePipeline

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

教學課程:使用 Git 標籤啟動管道

在本教學課程中,您將建立連線至 GitHub 儲存庫的管道,其中針對 Git 標籤觸發類型設定來源動作。當 Git 標籤在提交上創建時,您的管道啟動。此範例說明如何建立管線,以根據標籤名稱的語法篩選標籤。如需使用 glob 模式篩選的詳細資訊,請參閱在語法中使用 glob 模式

本自學課程透 GitHub 過CodeStarSourceConnection動作類型連接到。

注意

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

必要條件

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

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

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

步驟 1:打開 CloudShell 並克隆您的存儲庫

您可以使用命令行界面來克隆存儲庫,進行提交和添加標籤。本自學課程會啟動指令行介面的 CloudShell 例證。

  1. 登入 AWS Management Console。

  2. 在上方導覽列中,選擇 AWS 圖示。顯示器的主頁 AWS Management Console 面。

  3. 在上方導覽列中,選擇 AWS CloudShell 圖示。 CloudShell 打開。等待 CloudShell 環境建立完成。

    注意

    如果沒有看到 CloudShell 圖示,請確定您所在的地區受支援 CloudShell。本教學課程假設您位於美國西部 (奧勒岡) 區域。

  4. 在中 GitHub,導覽至您的存放庫。選擇 [程式碼],然後選擇 [HTTPS]。複製路徑。複製 Git 儲存庫的地址會複製到剪貼簿。

  5. 執行下列命令以複製存放庫。

    git clone https://github.com/<account>/MyGitHubRepo.git
  6. 輸入您的 GitHub 帳戶Username,並Password在提示時輸入。對於Password條目,您必須使用用戶創建的令牌而不是您的帳戶密碼。

第 2 步:創建一個管道以在 Git 標籤上觸發

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

  • 與 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 (管道名稱) 中,輸入 MyGitHubTagsPipeline

  4. 在「配管」類型中,將預設選取項保持在 V2。管道類型的特性和價格不同。如需詳細資訊,請參閱 管線類型

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

    注意

    如果您改為選擇使用現有的 CodePipeline 服務角色,請確定已將 codestar-connections: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. 管線觸發程序下,選擇 Git 標籤

      在「包含」欄位中,輸入release*

      在 D efault 分支中,選擇手動啟動管線時要指定的分支,或使用非 Git 標籤的來源事件。如果變更的來源不是觸發程序,或者如果管線執行是手動啟動的,則使用的變更將是來自預設分支的 HEAD 認可。

      重要

      以 Git 標籤觸發器類型開頭的管道將會針對 WebHookv2 事件設定,而且不會使用 Webhook 事件 (對所有推送事件進行變更偵測) 來啟動管線。

    選擇 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 (插入建置命令)。選擇切換到編輯器,然後將以下內容粘貼到構建命令下。

      version: 0.2 #env: #variables: # key: "value" # key: "value" #parameter-store: # key: "value" # key: "value" #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 #commands: # - command # - command #pre_build: #commands: # - command # - command build: commands: - #post_build: #commands: # - command # - command artifacts: files: - '*' # - 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:標記您的提交以進行釋放

建立管線並指定 Git 標籤之後,您可以在 GitHub儲存庫中標記提交。在這些步驟中,您將使用標籤release-1標記提交。Git 儲存庫中的每個提交都必須有唯一的 Git 標籤。當您選擇提交並加上標籤時,這可讓您將來自不同分支的變更併入管線部署中。請注意,標籤名稱版本不適用於中發行版本的概念 GitHub。

  1. 參考您要標記的複製提交 ID。要查看每個分支中的提交,請在 CloudShell 終端機中輸入以下命令以捕獲要標記的提交 ID:

    git log
  2. 在 CloudShell 終端中,輸入命令以標記您的提交並將其推送到原點。標記提交後,您可以使用 git push 命令將標籤推送到原點。在下列範例中,輸入下列命令,將release-1標籤用於具有 ID 的第二次提交49366bd。此標籤將由管線release*標籤篩選器篩選,並啟動管線。

    git tag release-1 49366bd
    git push origin release-1
    使用終端運行命令來標記提交。

步驟 4:發布更改並查看日誌

  1. 管道成功執行之後,在成功的建置階段中,選擇 [檢視記錄]。

    在 [記錄檔] 下,檢視 CodeBuild 組建輸出。這些指令會輸出所輸入變數的值。

  2. 在「歷史記錄」頁面中,檢視「觸發程式」欄。查看觸發類型 GitTag :釋放 -1