자습서: CodeBuild 호스팅 GitHub 액션 러너 구성 - AWS CodeBuild

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

자습서: CodeBuild 호스팅 GitHub 액션 러너 구성

이 자습서에서는 GitHub Actions 작업을 실행하도록 CodeBuild 프로젝트를 구성하는 방법을 보여줍니다. GitHub 액션을 사용하는 방법에 대한 CodeBuild 자세한 내용은 을 참조하십시오에서 자체 호스팅 GitHub 액션 러너 사용 AWS CodeBuild.

이 자습서를 완료하려면 먼저 다음을 수행해야 합니다.

  • 개인용 액세스 토큰, Secrets Manager 시크릿, OAuth 앱 또는 GitHub 앱으로 연결하세요. OAuth앱에 연결하려면 CodeBuild 콘솔을 사용해야 합니다. 개인용 액세스 토큰을 만들려면 CodeBuild 콘솔을 사용하거나 를 사용할 수 ImportSourceCredentials API있습니다. 자세한 지침은 을 참조하십시오GitHub 그리고 GitHub 엔터프라이즈 서버 액세스는 CodeBuild.

  • GitHub 계정에 CodeBuild 연결하세요. 이렇게 하려면 다음 중 하나를 수행할 수 있습니다.

    참고

    계정에 연결하지 않은 경우에만 이 작업을 수행하면 됩니다. GitHub

1단계: CodeBuild 웹후크를 사용하여 프로젝트 만들기

이 단계에서는 웹후크가 포함된 CodeBuild 프로젝트를 만들고 콘솔에서 검토합니다 GitHub . GitHub Enterprise를 소스 공급자로 선택할 수도 있습니다. GitHub Enterprise 내에서 웹훅을 만드는 방법에 대한 자세한 내용은 을 참조하십시오GitHub 수동 웹후크.

웹후크를 사용하여 CodeBuild 프로젝트를 만들려면
  1. https://console.aws.amazon.com/codesuite/코드빌드/홈에서 AWS CodeBuild 콘솔을 엽니다.

  2. 빌드 프로젝트를 생성합니다. 자세한 내용은 빌드 프로젝트 만들기(콘솔)빌드 실행(콘솔) 섹션을 참조하세요.

    • 소스에서 다음과 같이 합니다.

      • 소스 제공자의 경우 선택합니다. GitHub

      • 리포지토리의 경우 내 GitHub 계정의 리포지토리를 선택합니다.

      • 리포지토리의 URL 경우 를 입력합니다https://github.com/user-name/repository-name.

      참고

      기본적으로 프로젝트는 단일 리포지토리에 대한 WORKFLOW_JOB_QUEUED 이벤트만 수신합니다. 조직 또는 기업 내 모든 리포지토리에 대한 이벤트를 수신하려면 을 참조하십시오. GitHub 글로벌 및 조직 웹후크

    • 기본 소스 웹후크 이벤트에서:

      • Webhook - 선택 사항의 경우 코드 변경 사항이 이 리포지토리로 푸시될 때마다 재구축을 선택합니다.

      • 이벤트 유형으로는 WORKFLOW JOB__를 선택합니다. QUEUED 이 기능을 활성화하면 GitHubActions 워크플로 작업 이벤트에 의해서만 빌드가 트리거됩니다.

        참고

        CodeBuild 웹후크에 WORKFLOWJOB_ 이벤트 필터가 포함된 필터 그룹이 있는 경우에만 GitHub Actions 워크플로 작업 QUEUED 이벤트를 처리합니다.

        GitHub Actions 워크플로 작업 이벤트에 의해서만 트리거되도록 구성을 빌드하십시오.
    • 환경에서 다음과 같이 합니다.

      • 지원되는 환경 이미지와 Compute를 선택합니다. GitHub Actions YAML 워크플로우에서 라벨을 사용하여 이미지 및 인스턴스 설정을 재정의할 수 있는 옵션이 있다는 점에 유의하세요. 자세한 내용은 2단계: GitHub 액션 워크플로 업데이트 YAML 단원을 참조하세요.

    • Buildspec에서 다음과 같이 합니다.

      • 레이블에 -with-buildspec 접미사를 추가하지 않으면 빌드스펙은 무시된다는 점에 유의하세요. 대신 자체 호스팅 CodeBuild 러너를 설정하는 명령을 사용하도록 이를 오버라이드합니다.

  3. 기본값을 계속 사용한 다음 빌드 프로젝트 만들기를 선택합니다.

  4. 에서 GitHub https://github.com/user-name/repository-name/settings/hooks 콘솔을 열어 웹후크가 생성되었고 Workflow 작업 이벤트를 전달할 수 있도록 활성화되었는지 확인합니다.

2단계: GitHub 액션 워크플로 업데이트 YAML

이 단계에서는 GitHub Actions 워크플로 YAML 파일을 GitHub업데이트하여 빌드 환경을 구성하고 에서 GitHub Actions 자체 호스팅 러너를 사용합니다. CodeBuild 자세한 내용은 자체 호스팅 러너와 함께 레이블 사용을 참조하십시오.

액션 워크플로를 업데이트하세요. GitHub YAML

GitHub Actions 워크플로의 runs-on설정으로 GitHub이동하여 설정을 YAML 업데이트하여 빌드 환경을 구성하세요. 이렇게 하려면 다음 중 하나를 수행할 수 있습니다.

  • 프로젝트 이름과 실행 ID를 지정할 수 있습니다. 이 경우 빌드는 컴퓨팅, 이미지, 이미지 버전, 인스턴스 크기에 기존 프로젝트 구성을 사용합니다. GitHub Actions 작업의 AWS관련 설정을 특정 CodeBuild 프로젝트에 연결하려면 프로젝트 이름이 필요합니다. 에 프로젝트 이름을 포함하면 YAML 올바른 프로젝트 설정으로 작업을 호출할 수 있습니다. CodeBuild 실행 ID를 CodeBuild 제공하면 빌드를 특정 워크플로 실행에 매핑하고 워크플로 실행이 취소되면 빌드를 중지합니다. 자세한 내용은 github컨텍스트를 참조하십시오.

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
    참고

    다음 사항을 확인하십시오.<project-name> 이전 단계에서 만든 프로젝트 이름과 일치합니다. 일치하지 않으면 CodeBuild 웹후크를 처리하지 않고 GitHub 액션 워크플로가 중단될 수 있습니다.

    다음은 GitHub 액션 YAML 워크플로의 예입니다.

    name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} steps: - run: echo "Hello World!"
  • 라벨의 이미지와 컴퓨팅 유형을 재정의할 수도 있습니다. 사용 가능한 이미지 목록은 을 CodeBuild GitHub -hosted Actions 러너에서 지원되는 이미지 계산 참조하십시오. 라벨의 컴퓨팅 유형과 이미지는 프로젝트의 환경 설정보다 우선합니다. Amazon EC2 컴퓨팅 빌드의 환경 설정을 재정의하려면 다음 구문을 사용하십시오.

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>

    Lambda 컴퓨팅 빌드의 환경 설정을 재정의하려면 다음 구문을 사용하십시오.

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<runtime-version>-<instance-size>

    다음은 Actions 워크플로의 예시입니다. GitHub YAML

    name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-small steps: - run: echo "Hello World!"
  • 라벨에서 빌드에 사용된 플릿을 오버라이드할 수 있습니다. 이렇게 하면 프로젝트에 구성된 플릿 설정이 지정된 플릿을 사용하도록 구성된 플릿 설정을 재정의합니다. 자세한 내용은 예약 용량 플릿에서 빌드 실행 단원을 참조하십시오. 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>

    다음은 GitHub Actions YAML 워크플로의 예시입니다.

    name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-fleet-myFleet steps: - run: echo "Hello World!"
  • 원하는 경우 이미지를 재정의하지 않고 인스턴스 크기 재정의를 제공할 수 있습니다. Amazon EC2 빌드의 경우 이미지 버전과 이미지 버전을 모두 제외할 수 있습니다. Lambda 빌드의 경우 환경 유형과 런타임 버전을 모두 제외할 수 있습니다.

참고

GitHub-hosted runners에서 제공하는 종속성을 해당 CodeBuild 환경에서 사용할 수 없는 경우 워크플로 실행에서 Actions를 사용하여 종속성을 설치할 수 있습니다. GitHub 예를 들어 setup-python작업을 사용하여 빌드 환경에 Python을 설치할 수 있습니다.

buildspec 명령어INSTALL, PRE _BUILD, _ 단계를 실행합니다. POST BUILD

기본적으로 셀프 호스팅 Actions 빌드를 실행할 때는 모든 buildspec 명령을 CodeBuild 무시합니다. GitHub 빌드 중에 buildspec 명령을 실행하려면 레이블에 접미사로 추가할 -with-buildspec 수 있습니다.

runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec

이 명령을 사용하면 컨테이너의 CodeBuild 기본 소스 actions-runner 폴더에 라는 폴더가 생성됩니다. BUILD단계 중에 GitHub 액션 러너가 시작되면 해당 디렉토리에서 실행기가 실행됩니다. actions-runner

자체 호스팅된 Actions 빌드에서 buildspec 오버라이드를 사용할 때는 몇 가지 제한 사항이 있습니다. GitHub

  • CodeBuild 자체 호스팅 러너는 해당 단계에서 실행되므로 이 BUILD 단계에서는 buildspec 명령을 실행하지 않습니다. BUILD

  • CodeBuild 이 단계에서는 기본 또는 보조 소스를 다운로드하지 않습니다. DOWNLOAD_SOURCE buildspec 파일을 구성한 경우 프로젝트의 기본 소스에서 해당 파일만 다운로드됩니다.

  • PRE_BUILD또는 INSTALL 단계에서 빌드 명령이 실패하면 자체 호스팅 러너가 시작되지 않으므로 GitHub Actions 워크플로 작업을 수동으로 취소해야 합니다. CodeBuild

  • CodeBuild 만료 시간이 1시간인 DOWNLOAD_SOURCE 단계에서 러너 토큰을 가져옵니다. PRE_BUILD또는 INSTALL 단계가 1시간을 초과하는 경우 러너 토큰은 셀프 호스팅 러너가 시작되기 전에 만료될 수 있습니다. GitHub

3단계: 결과 검토

GitHub Actions 워크플로가 CodeBuild 실행될 때마다 웹후크를 통해 워크플로 작업 이벤트를 수신합니다. 워크플로의 각 작업에 대해 임시 GitHub 액션 러너를 실행하기 위한 빌드를 CodeBuild 시작합니다. 러너는 단일 워크플로 작업 실행을 담당합니다. 작업이 완료되면 러너 및 관련 빌드 프로세스가 즉시 종료됩니다.

워크플로 작업 로그를 보려면 의 GitHub 저장소로 이동하여 작업을 선택하고 원하는 워크플로를 선택한 다음 로그를 검토하려는 특정 작업을 선택합니다.

자체 호스팅 실행자가 작업을 선택하기를 기다리는 동안 로그에서 요청된 레이블을 검토할 수 있습니다. CodeBuild

작업 로그 로드

작업이 완료되면 작업 로그를 볼 수 있습니다.

작업 로그.