

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

# 使用 的來源版本範例 AWS CodeBuild
<a name="sample-source-version"></a>

 此範例示範如何使用遞交 ID 以外的格式 (也稱為遞交 SHA) 來指定來源的版本。您可以透過下列方式指定來源的版本：
+  對於 Amazon S3 來源提供者，請使用代表建置輸入 ZIP 檔案的物件版本 ID。
+  對於 CodeCommit、Bitbucket、GitHub 和 GitHub Enterprise Server，請使用下列其中一項：
  +  提取請求做為提取請求參考 (例如，`refs/pull/1/head`)。
  +  分支做為分支名稱。
  +  遞交 ID。
  +  標籤。
  +  參考和遞交 ID。參考可以是下列其中一項：
    +  標籤 (例如，`refs/tags/mytagv1.0^{full-commit-SHA}`)。
    +  分支 (例如，`refs/heads/mydevbranch^{full-commit-SHA}`)。
    +  提取請求 (例如，`refs/pull/1/head^{full-commit-SHA}`)。
+  對於 GitLab 和 GitLab 自我管理，請使用下列其中一項：
  +  分支做為分支名稱。
  +  遞交 ID。
  +  標籤。

**注意**  
 只有當您的儲存庫是 GitHub 或 GitHub Enterprise Server 時，才可以指定提取請求來源的版本。

 如果您使用參考和遞交 ID 來指定版本，建置的 `DOWNLOAD_SOURCE` 階段會比您僅提供版本來得更快速。這是因為當您新增參考時，CodeBuild 不需要下載整個儲存庫來尋找遞交。
+ 您可以指定僅具有遞交 ID 的來源版本，例如 `12345678901234567890123467890123456789`。如果您這樣做，CodeBuild 必須下載整個儲存庫才能尋找版本。
+ 您可以指定具有參考和遞交 ID 的來源版本，以此格式：`refs/heads/branchname^{full-commit-SHA}` (例如，`refs/heads/main^{12345678901234567890123467890123456789}`)。如果您這樣做，CodeBuild 只會下載指定的分支來尋找版本。

**注意**  
若要加速建置的`DOWNLOAD_SOURCE`階段，您也可以將 **Git 複製深度**設定為低數量。CodeBuild 會下載較少版本的儲存庫。

**Topics**
+ [

# 使用遞交 ID 指定 GitHub 儲存庫版本
](sample-source-version-github.md)
+ [

# 使用參考和遞交 ID 指定 GitHub 儲存庫版本
](sample-source-version-github-ref.md)

# 使用遞交 ID 指定 GitHub 儲存庫版本
<a name="sample-source-version-github"></a>

您可以指定僅具有遞交 ID 的來源版本，例如 `12345678901234567890123467890123456789`。如果您這樣做，CodeBuild 必須下載整個儲存庫才能尋找版本。

**指定具有遞交 ID 的 GitHub 儲存庫版本**

1. 在 https：//[https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) 開啟 AWS CodeBuild 主控台。

1. 建立建置專案。如需詳細資訊，請參閱 [建立組建專案 (主控台)](create-project.md#create-project-console) 及 [執行建置 (主控台)](run-build-console.md)。除了下列設定外，保留所有設定的預設值：
   +  在 **Source (來源)** 中：
     +  針對 **Source provider (來源供應商)**，選擇 **GitHub**。如果您未連接至 GitHub，請遵循指示來連接。
     +  針對 **Repository (儲存庫)**，選擇 **Public repository (公有儲存庫)**。
     +  針對 **Repository URL (儲存庫 URL)**，輸入 **https://github.com/aws/aws-sdk-ruby.git**。
   + 在 **Environment (環境)** 中：
     + 針對 **Environment image (環境映像)**，選擇 **Managed image (受管映像)**。
     + 針對 **Operating system** (作業系統)，請選擇 **Amazon Linux 2**。
     + 針對 **Runtime(s) (執行時間)**，選擇 **Standard (標準)**。
     + 針對**映像**，選擇 **aws/codebuild/amazonlinux-x86\$164-standard：4.0。**

1.  針對 **Build specifications (組建規格)**，選擇 **Insert build commands (插入組建命令)**，然後選擇 **Switch to editor (切換到編輯器)**。

1.  在 **Build commands (組建命令)** 中，將預留位置文字更換為以下內容：

   ```
   version: 0.2
   
   phases:
     install:
       runtime-versions:
         ruby: 2.6
     build:
       commands:
          - echo $CODEBUILD_RESOLVED_SOURCE_VERSION
   ```

    當您使用 Ubuntu 標準映像 2.0，則需要 `runtime-versions` 區段。在此處，指定了 Ruby 版本 2.6 執行階段，但您可以使用任何執行時間。`echo` 命令會顯示存放在 `CODEBUILD_RESOLVED_SOURCE_VERSION` 環境變數中原始程式碼的版本。

1.  在 **Build configuration (組建組態)** 上，接受預設值，然後選擇 **Start build (開始組建)**。

1.  對於 **Source version (來源版本)**，輸入 **046e8b67481d53bdc86c3f6affdd5d1afae6d369**。這是 `https://github.com/aws/aws-sdk-ruby.git` 儲存庫中遞交的 SHA。

1.  選擇 **Start build (開始組建)**。

1.  當組建完成時，您應該會看到下列：
   +  在 **Build logs (組建日誌)** 標籤上，使用的專案來源的版本。請見此處範例。

     ```
     [Container] Date Time Running command echo $CODEBUILD_RESOLVED_SOURCE_VERSION 
     046e8b67481d53bdc86c3f6affdd5d1afae6d369
      
     [Container] Date Time Phase complete: BUILD State: SUCCEEDED
     ```
   +  在 **Environment variables (環境變數)** 標籤上，**Resolved source version (已解決的來源版本)** 會符合用來建立組建的遞交 ID。
   +  在 **Phase details (階段詳細資訊)** 標籤上，`DOWNLOAD_SOURCE` 階段的持續時間。

# 使用參考和遞交 ID 指定 GitHub 儲存庫版本
<a name="sample-source-version-github-ref"></a>

您可以指定具有參考和遞交 ID 的來源版本，以此格式：`refs/heads/branchname^{full-commit-SHA}` (例如，`refs/heads/main^{12345678901234567890123467890123456789}`)。如果您這樣做，CodeBuild 只會下載指定的分支來尋找版本。

**使用參考和遞交 ID 指定 GitHub 儲存庫版本。**

1. 完成「[使用遞交 ID 指定 GitHub 儲存庫版本](sample-source-version-github.md)」中的步驟。

1.  從左側導覽窗格，選擇 **Build projects (組建專案)**，然後選擇您稍早建立的專案。

1.  選擇 **Start build (開始組建)**。

1.  在 **Source version (來源版本)** 中，輸入 **refs/heads/main^\$1046e8b67481d53bdc86c3f6affdd5d1afae6d369\$1**。這是相同的遞交 ID 和分支的參考，格式為 `refs/heads/branchname^{full-commit-SHA}`。

1.  選擇 **Start build (開始組建)**。

1. 當組建完成時，您應該會看到下列：
   +  在 **Build logs (組建日誌)** 標籤上，使用的專案來源的版本。請見此處範例。

     ```
     [Container] Date Time Running command echo $CODEBUILD_RESOLVED_SOURCE_VERSION 
     046e8b67481d53bdc86c3f6affdd5d1afae6d369
      
     [Container] Date Time Phase complete: BUILD State: SUCCEEDED
     ```
   +  在 **Environment variables (環境變數)** 標籤上，**Resolved source version (已解決的來源版本)** 會符合用來建立組建的遞交 ID。
   +  在 **Phase details (階段詳細資訊)** 標籤上，`DOWNLOAD_SOURCE` 階段的持續時間應該較您僅使用遞交 ID 來指定來源的版本時更短。