View a markdown version of this page

CodeBuild 호스팅 GitHub Action 실행기에서 지원되는 레이블 재정의 - AWS CodeBuild

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CodeBuild 호스팅 GitHub Action 실행기에서 지원되는 레이블 재정의

GitHub Action 워크플로 YAML에서 자체 호스팅 실행기 빌드를 수정하는 다양한 레이블 재정의를 제공할 수 있습니다. CodeBuild에서 인식하지 못하는 빌드는 무시되지만 웹후크 요청에 실패하지는 않습니다. 다음 워크플로 YAML은 이미지, 인스턴스 크기, 플릿 및 buildspec에 대한 job1 재정의를 사용하고 이미지 재정의만 job2 사용하는 두 가지 작업을 정의합니다. GitHub가 각 작업을 생성된 러너로 라우팅하도록 각 작업에 고유한 레이블(job1job2)을 지정합니다.

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!"

매트릭스 전략을 사용하여 여러 구성에서 단일 작업을 실행할 수도 있습니다. 단일 매트릭스 작업의 확장에는 항상 동일한 수의 레이블이 있으므로 러너 일치 문제는 해당 레이블에 영향을 주지 않습니다. 그러나 워크플로 실행에 둘 이상의 매트릭스 작업이 포함된 경우 GitHub가 다른 매트릭스 작업에 대해 생성된 실행기와 작업을 일치시키지 않도록 각 매트릭스 작업에 고유한 사용자 지정 레이블(예: matrix-job-1matrix-job-2)을 지정합니다.

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에서 중단되는 경우 웹후크 문제 해결 사용자 지정 레이블을 사용하여 작업 라우팅을 참조하세요.

codebuild-<project-name>-${{github.run_id}}-${{github.run_attempt}}(필수)

  • 예시: codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}

  • 모든 GitHub Action 워크플로 YAML에 필요합니다. <project name>은 자체 호스팅 실행기 웹후크가 구성된 프로젝트의 이름과 같아야 합니다.

image:<environment-type>-<image-identifier>

instance-size:<instance-size>

fleet:<fleet-name>

  • 예시: fleet:myFleet

  • 지정된 플릿을 사용하도록 프로젝트에 구성된 플릿 설정을 재정의합니다. 자세한 내용은 예약 용량 플릿에서 빌드 실행 단원을 참조하십시오.

buildspec-override:<boolean>

  • 예시: buildspec-override:true

  • true로 설정된 경우 빌드가 INSTALL, PRE_BUILDPOST_BUILD 단계에서 buildspec 명령을 실행하도록 허용합니다.

<unique-label> (워크플로 실행에 여러 작업이 있는 경우 권장)

  • 예시: job1

  • 정의한 사용자 지정 레이블로, 동일한 워크플로 실행에서 다른 작업이 사용하지 않습니다. 각 작업에 고유한 레이블을 할당하면 GitHub가 각 작업을 해당 작업에 대해 생성된 러너로만 라우팅합니다. 그렇지 않으면 동일한 워크플로 실행의 작업에서 레이블 재정의 수가 다르면 레이블이 더 적은 작업을 더 많은 레이블이 있는 작업에 대해 생성된 러너가 선택할 수 있으므로 러너 없이 두 번째 작업을 남길 수 있습니다. 자세한 내용은 웹후크 문제 해결 단원을 참조하십시오.

단일 레이블 재정의

CodeBuild를 사용하면 다음을 사용하여 단일 레이블에 여러 재정의를 제공할 수 있습니다.

참고

모든 재정의가 단일 레이블로 결합되므로 각 작업의 실행기는 정확히 하나의 레이블로 등록됩니다. 즉,에 설명된 다중 작업 실행기 일치 문제는 각 작업에 고유한 레이블이 없더라도이 형식으로 발생할 웹후크 문제 해결 수 없습니다. 이 동작을 선호하고 작업에 지원되는 재정의만 필요한 경우 단일 레이블 형식을 사용합니다. 지원되지 않는 재정의가 필요한 경우 사용하지 마세요. 예를 들어 사용자 지정 이미지(프라이빗 레지스트리의 이미지 포함)는 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 빌드의 경우 이미지 식별자를 제외할 수 있습니다.