本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CodeBuild 託管的 GitHub Actions Runner 支援標籤覆寫
在 GitHub Actions 工作流程 YAML 中,您可以提供各種標籤覆寫,以修改您的自我託管執行器建置。CodeBuild 無法辨識的任何建置都會遭到忽略,但不會讓您的 Webhook 請求失敗。下列工作流程 YAML 定義兩個任務: 會針對映像、執行個體大小、機群和 buildspec job2 job1使用覆寫,並僅使用映像覆寫。為每個任務提供一個唯一的標籤 (job1 和 job2),以便 GitHub 將每個任務路由到為其建立的執行器:
name: Hello World on: [push] jobs: job1: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:arm-3.0 - instance-size:small - fleet:myFleet - buildspec-override:true - job1 steps: - run: echo "Hello from Job 1!" job2: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:linux-5.0 - job2 steps: - run: echo "Hello from Job 2!"
您也可以使用矩陣策略跨多個組態執行單一任務。單一矩陣任務的擴展始終具有相同數量的標籤,因此執行器比對問題不會影響它們。不過,如果工作流程執行包含多個矩陣任務,請將自己的唯一自訂標籤 (例如 matrix-job-1和 matrix-job-2) 提供給每個矩陣任務,讓 GitHub 不會將任務與為不同矩陣任務建立的執行器比對:
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:${{ matrix.os }} - instance-size:${{ matrix.size }} - fleet:myFleet - buildspec-override:true - matrix-job-1 strategy: matrix: include: - os: arm-3.0 size: small - os: linux-5.0 size: large steps: - run: echo "Hello World!"
注意
如果您的工作流程任務在 GitHub 上懸置,請參閱Webhook 故障診斷和使用自訂標籤來路由任務
codebuild- (必要)<project-name>-${{github.run_id}}-${{github.run_attempt}}
範例:
codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}-
所有 GitHub Actions 工作流程 YAMLs都需要。
<project name>應等於設定自我託管執行器 Webhook 的專案名稱。
image:<environment-type>-<image-identifier>
範例:
image:arm-3.0-
覆寫使用精選映像啟動自我託管執行器建置時所使用的映像和環境類型。若要了解支援的值,請參閱 CodeBuild 託管的 GitHub Actions Runner 支援的運算映像。
若要覆寫與自訂映像搭配使用的映像和環境類型,請使用
image:custom-<environment-type>-<custom-image-identifier>範例:
image:custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0注意
如果自訂映像位於私有登錄檔中,請參閱 設定自我託管執行器的私有登錄登入資料。
instance-size:<instance-size>
範例:
instance-size:medium-
覆寫啟動自我託管執行器建置時所使用的執行個體類型。若要了解支援的值,請參閱 CodeBuild 託管的 GitHub Actions Runner 支援的運算映像。
fleet:<fleet-name>
範例:
fleet:myFleet-
覆寫專案上設定的機群設定,以使用指定的機群。如需詳細資訊,請參閱在預留容量機群上執行組建。
buildspec-override:<boolean>
範例:
buildspec-override:true-
如果設為
PRE_BUILD,允許組建在INSTALL、 和POST_BUILD階段中執行 buildspec 命令true。
(當工作流程執行有多個任務時建議使用)<unique-label>
範例:
job1-
您定義且相同工作流程執行中沒有其他任務使用的自訂標籤。為每個任務指派唯一的標籤,可確保 GitHub 只會將每個任務路由至為其建立的執行器。如果沒有它,當相同工作流程執行中的任務具有不同數量的標籤覆寫時,為具有更多標籤的任務建立的執行器可以拾取具有較少標籤的任務,這會離開沒有執行器的第二個任務。如需詳細資訊,請參閱Webhook 故障診斷。
單一標籤覆寫
CodeBuild 可讓您使用下列項目,在單一標籤中提供多個覆寫:
注意
由於所有覆寫都會合併為單一標籤,因此每個任務的執行器只會註冊一個標籤。這表示 中所述的多工作執行器比對問題Webhook 故障診斷無法使用此格式發生,即使每個工作上沒有唯一的標籤也一樣。如果您偏好此行為,且您的任務只需要覆寫其支援的 ,請使用單一標籤格式。當您需要其不支援的覆寫時,請勿使用它。例如,自訂映像 (包括私有登錄檔中的映像) 只能使用image:custom-標籤格式來指定。對於這些覆寫,請使用本主題先前所述的個別標籤格式。<environment-type>-<custom-image-identifier>
-
若要覆寫 Amazon EC2/Lambda 運算組建的環境設定,請使用下列語法:
runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size> -
若要覆寫 Amazon EC2 運算建置的機群設定,請使用下列語法:
runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name> -
若要同時覆寫用於建置的機群和映像,請使用下列語法:
runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-image-<image-version>-fleet-<fleet-name> -
若要在建置期間執行 buildspec 命令,
-with-buildspec可以新增為標籤的尾碼:runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec -
或者,您可以提供執行個體大小覆寫,而無需覆寫映像。對於 Amazon EC2 組建,您可以排除環境類型和映像識別符。對於 Lambda 組建,您可以排除影像識別符。