기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
빌드 사양에서 GitHub 액션 구문 사용 AWS CodeBuild
CodeBuild-managed 액션 러너를 사용하여 내에서 액션을 실행할 수 있습니다. GitHub CodeBuild 이 작업은 buildspec 파일의 아무 단계에나 steps
를 추가하여 수행할 수 있습니다.
CodeBuild buildspec은 명령과는 별도의 단계에서 실행되는 순차적 GitHub 액션 단계 목록을 지원합니다. CodeBuild 이러한 GitHub 액션은 종속성 캐싱, 배치 빌드, 액세스 등을 포함하는 CodeBuild 의 기존 기능과 통합됩니다. AWS Secrets Manager
주제
- 빌드 사양에서 GitHub Action을 사용하려면 어떻게 해야 하나요?
- 빌드 사양에서 어떤 GitHub 액션을 사용할 수 있나요?
- 빌드스펙에서 GitHub 액션을 사용할 GitHub 때 말고 다른 소스 공급자를 사용할 수 있나요?
- 빌드 사양에서 GitHub 액션을 사용하려면 소스 GitHub 공급자로 연결해야 하는 이유는 무엇입니까?
- 빌드 사양에서 GitHub 액션을 사용하는 데 비용이 얼마나 드나요?
- 내 빌드스펙에서 GitHub 액션을 사용할 수 있는 지역은 어디입니까?
- 빌드 사양에서 GitHub 액션을 사용하는 베스트 프랙티스
- 빌드 사양에서 GitHub 액션을 사용할 때의 제한 사항 CodeBuild
- GitHub 액션 러너 빌드스펙 참조
- GitHub 다음과 같은 액션 구문 샘플 AWS CodeBuild
빌드 사양에서 GitHub Action을 사용하려면 어떻게 해야 하나요?
빌드 사양에서 GitHub 액션을 사용하는 상위 단계는 다음과 같습니다.
-
아직 연결하지 않았다면 프로젝트를 에 연결하세요. GitHub
이렇게 하려면 다음 중 하나를 수행할 수 있습니다.
-
콘솔에서 소스 GitHub 공급자로 추가할 수 있습니다. 자세한 정보는 액세스 GitHub 토큰으로 연결 (콘솔) 을 참조하세요.
-
CodeBuild API를 통해 GitHub 자격 증명을 가져올 수 있습니다. 자세한 정보는 액세스 토큰 (CLI) GitHub 으로 연결 을 참조하세요.
참고
다른 프로젝트에 연결하지 않은 경우에만 이 작업을 수행하면 됩니다. GitHub
-
-
프로젝트의 빌드스펙에서 각각 액션을 참조하는 것을 추가할
steps
수 있습니다. GitHub CodeBuild 콘솔이나 소스 리포지토리에서 편집할 수 있습니다. 각 빌드 단계는 명령 목록이나 단계 목록을 지원하지만 둘 다 같은 단계에서 사용할 수는 없습니다. 자세한 정보는 빌드 사양에서 GitHub 액션 구문 사용 AWS CodeBuild을 참조하세요.
빌드 사양에서 어떤 GitHub 액션을 사용할 수 있나요?
GitHub Marketplace에서
빌드스펙에서 GitHub 액션을 사용할 GitHub 때 말고 다른 소스 공급자를 사용할 수 있나요?
예. 하지만 Action을 사용하여 GitHub 인증하고 액세스하려면 여전히 GitHub 연결이 필요합니다. GitHub 자세한 정보는 GitHub 및 GitHub 엔터프라이즈 서버 액세스 토큰을 참조하세요.
빌드 사양에서 GitHub 액션을 사용하려면 소스 GitHub 공급자로 연결해야 하는 이유는 무엇입니까?
빌드 사양에서 GitHub Action을 사용하려면 소스를 빌드 컴퓨트에 다운로드해야 합니다. 익명 다운로드는 속도가 제한되므로 에 연결하면 일관된 액세스를 보장하는 데 도움이 될 수 있습니다. GitHub
빌드 사양에서 GitHub 액션을 사용하는 데 비용이 얼마나 드나요?
빌드 사양에서 GitHub 액션을 사용하는 것은 추가 비용 없이 지원됩니다.
내 빌드스펙에서 GitHub 액션을 사용할 수 있는 지역은 어디입니까?
빌드 사양에서 GitHub 액션을 사용하는 것은 모든 지역에서 지원됩니다. CodeBuild 사용 가능한 AWS 리전 위치에 CodeBuild 대한 자세한 내용은 지역별 AWS 서비스를
빌드 사양에서 GitHub 액션을 사용하는 베스트 프랙티스
GitHub 액션은 오픈소스이며 커뮤니티에서 빌드하고 유지 관리합니다. 우리는 공동 책임 모델을
작업에 대한 보다 구체적인 지침 및 보안 모범 사례: GitHub
빌드 사양에서 GitHub 액션을 사용할 때의 제한 사항 CodeBuild
-
GitHub 내부적으로
github
컨텍스트를사용하거나 pull 요청 및 issue와 같은 GitHub 특정 리소스를 참조하는 빌드 사양 내 액션은 에서 지원되지 않습니다. CodeBuild 예를 들어, 다음 액션은 다음에서는 작동하지 않습니다. CodeBuild -
GitHub GitHub리소스를 추가, 변경 또는 업데이트하려는 작업 (예: pull 요청을 업데이트하거나 에서 GitHub 이슈를 생성하는 작업)
참고
https://github.com/actions
에 나열된 대부분의 공식 GitHub 조치는 github
상황에 따라 달라집니다. 대신 GitHub Marketplace에서 사용할 수 있는 작업을 사용하세요. -
-
GitHub Docker 컨테이너 작업인 빌드 사양의 액션은
작동하지만 빌드 프로젝트는 권한 모드를 활성화하고 기본 Docker 사용자 (루트) 가 실행해야 합니다. -
Actions는 루트 사용자로 실행해야 합니다. 자세한 내용은 액션에 대한 Dockerfile 지원의 USER
주제를 참조하세요. GitHub
-
-
GitHub 빌드 사양의 액션은 Windows에서 실행되도록 구성된 CodeBuild 프로젝트에서는 지원되지 않습니다.
-
GitHub 빌드스펙의 액션 작업 (단계 그룹) 및 GitHub 액션 작업 속성은 지원되지 않습니다.
-
GitHub 빌드 스펙의 액션은 공개 Git 리포지토리의 웹후크에 의해 트리거되도록 구성된 CodeBuild 프로젝트에서는 지원되지 않습니다. 자세한 내용은 을 참조하십시오. git-credential-helper
-
퍼블릭 인터넷 액세스가 없는 VPC 빌드는 빌드 사양에서 GitHub 액션을 실행할 수 없습니다.
-
각 빌드 단계는 명령 목록이나 단계 목록을 지원하지만 둘 다 같은 단계에서 사용할 수는 없습니다. 예를 들어 다음 샘플에서는 사전 빌드 단계에서는 단계를 사용하여 GitHub 작업을 나열하고 빌드 단계에서는 명령을 사용하여 명령을 나열합니다. CodeBuild
version: 0.2 phases: pre-build: steps: - name: Lint Code Base uses: github/super-linter@v4 env: VALIDATE_ALL_CODEBASE: 'true' DEFAULT_BRANCH: main build: commands: - echo "Building..." - npm run build
GitHub 액션 러너 빌드스펙 참조
이 항목에는 액션 러너 속성에 대한 buildspec 참조가 포함되어 있습니다. GitHub
단계(steps)
선택적 시퀀스. 단계는 에서 명령과 액션을 실행하는 데 사용됩니다. CodeBuild 자세한 정보는 빌드 사양에서 GitHub 액션 구문 사용 AWS CodeBuild을 참조하세요.
참고
각 빌드 단계는 commands
목록이나 steps
목록을 지원하지만 둘 다 같은 단계에서 사용할 수는 없습니다.
각 빌드 단계는 다음 속성을 포함합니다.
- id
-
선택 사항입니다. 다른 컨텍스트
의 단계를 참조하는 데 사용할 수 있는 단계의 식별자입니다. - if
선택 사항입니다. 조건이 충족되지 않으면 단계가 실행되지 않도록 하는 데 사용할 수 있는 조건문입니다. 이 명령문은 표현식뿐
아니라 에서 CodeBuild 환경 변수를 참조하는 등 지원되는 모든 컨텍스트를 사용할 수 있습니다. - 이름
-
선택 사항입니다. 단계의 이름입니다. 이름을 지정하지 않으면 기본 이름은
run
명령에 지정된 텍스트입니다. - uses
-
단계에 대해 실행되는 작업입니다. 일부 작업에서는
with
를 사용하여 입력을 설정해야 합니다. 작업의 README를 참조하여 필요한 입력을 확인합니다. 자세한 정보는 빌드 사양에서 어떤 GitHub 액션을 사용할 수 있나요?을 참조하세요.빌드 단계에서
uses
를 지정한 경우run
과 함께 사용할 수 없습니다.참고
사용 중인 작업의 버전을 포함하는 것이 좋습니다. 이 작업은 Git ref, SHA 또는 Docker 태그를 지정하여 수행할 수 있습니다. 자세한 내용은 steps.uses 구문
을 참조하세요. - run
-
명령줄 프로그램을 실행하는 명령입니다. 이것은 한 줄 명령일 수도 있고 여러 줄 명령일 수도 있습니다. 기본적으로 이러한 명령은 비로그인 쉘을 사용하여 실행됩니다. 다른 쉘을 선택하려면
shell
을 사용합니다.빌드 단계에서
run
를 지정한 경우uses
과 함께 사용할 수 없습니다. - shell
-
선택 사항입니다. 이 시퀀스에 지정된 쉘입니다. 지원되는 쉘 파라미터는 steps.shell
을 참조하세요. 지정하지 않은 경우 사용되는 쉘은 bash입니다. bash를 사용할 수 없는 경우 sh가 사용됩니다. - with
-
선택 사항입니다. 작업에 의해 정의된 입력 파라미터의 맵입니다. 각 파라미터는 키/값 페어로 구성됩니다.
- with.args
-
선택 사항입니다. Docker 컨테이너의 입력을 정의하는 문자열입니다.
- with.entrypoint
-
선택 사항입니다. Dockerfile에 지정된 Docker 진입점입니다.
- env
-
선택 사항입니다. 환경에서 사용할 단계에 대해 지정된 변수입니다.
- continue-on-error
-
선택 사항입니다. 이 단계 시퀀스의 실패를 무시할 수 있는지 여부를 나타내는 부울 값입니다.
false
-
기본값입니다. 이 단계 시퀀스가 실패하면 빌드가 실패합니다.
true
-
이 단계 시퀀스가 실패하더라도 빌드는 여전히 성공할 수 있습니다.
- timeout-minutes
-
선택 사항입니다. 단계가 종료되기 전에 실행할 수 있는 최대 시간(분)입니다. 기본값은 제한 시간 없음입니다. 단계 제한 시간이 빌드 제한 시간을 초과하는 경우 빌드 제한 시간에 도달하면 단계가 중지됩니다.
다음은 슈퍼
version: 0.2 phases: build: steps: - name: Lint Code Base uses: github/super-linter@v5 env: VALIDATE_ALL_CODEBASE: true USE_FIND_ALGORITHM: true FILTER_REGEX_INCLUDE: '/github/workspace/buildspec.yml'
GitHub 다음과 같은 액션 구문 샘플 AWS CodeBuild
이 샘플 그룹을 사용하여 빌드스펙의 GitHub 액션을 실험해 볼 수 있습니다. CodeBuild
슈퍼 린터 액션 샘플 GitHub
이 샘플은 프로젝트에 수퍼
buildspec 파일의 단계 섹션을 업데이트하여 CodeBuild 프로젝트에 슈퍼 린터 GitHub 액션을 추가할 수 있습니다.
version: 0.2 phases: build: steps: - name: Lint Code Base uses: github/super-linter@v5 env: VALIDATE_ALL_CODEBASE: true
다음과 비슷한 Super-Linter 로그가 표시됩니다.
/github/workspace/hello-world/app.js:3:13: Extra semicolon.
/github/workspace/hello-world/app.js:9:92: Trailing spaces not allowed.
/github/workspace/hello-world/app.js:21:7: Unnecessarily quoted property 'body' found.
/github/workspace/hello-world/app.js:31:1: Expected indentation of 2 spaces but found 4.
/github/workspace/hello-world/app.js:32:2: Newline required at end of file but not found.
배치 빌드 그래프 샘플
다음 예제는 종속성 체인을 생성하고 steps
를 사용하여 명령을 실행하는 빌드 그래프를 정의합니다. 이 예제에서는 종속성이 없으므로 build1
이 먼저 실행됩니다. build2
에는 build1
에 대한 종속 관계가 있으므로 build1이 완료된 후에 build2
가 실행됩니다. 자세한 내용은 빌드 그래프을 참조하세요.
version: 0.2 batch: fast-fail: false build-graph: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 env: variables: BUILD_ID: build2 depend-on: - build1 phases: build: steps: - run: echo $BUILD_ID
아마존 CodeGuru 리뷰어 샘플
Amazon CodeGuru Reviewer는 Java 및 Python 코드에서 문제를 발견하고 해결 방법을 권장합니다. 다음 예제는 CodeGuru Reviewer를 사용하여 전체 리포지토리 분석 코드 검토를 제공합니다. 이러한 코드 검토는 지정된 분기의 모든 코드를 스캔합니다. 자세한 내용은 Amazon CodeGuru Reviewer 사용 설명서의 GitHub 작업을 사용하여 코드 리뷰 생성을 참조하십시오.
version: 0.2 phases: build: steps: - name: Amazon CodeGuru Reviewer Scanner if: ${{ always() }} uses: aws-actions/codeguru-reviewer@v1.1 with: s3_bucket: codeguru-reviewer-user artifacts: files: - codeguru-results.sarif.json
참고
Amazon S3 버킷은 codeguru-reviewer-
접두사로 시작해야 합니다.
다음과 비슷한 로그가 표시됩니다.
INFO CodeReview created with arn=arn:aws:codeguru-reviewer:region
:account-id
:association:id
:code-review:RepositoryAnalysis-job
for job=job
INFO SARIF persisted to /github/workspace/codeguru-results.sarif.json
INFO Amazon CodeGuru Reviewer job execution completed
Amazon CodeGuru Reviewer 작업이 완료되면 사리프 보고서가 아티팩트로 CodeBuild 생성됩니다. 자세한 내용은 Amazon CodeGuru Reviewer 사용 설명서의 전체 리포지토리 분석을 참조하십시오.
AWS Secrets Manager 샘플
AWS Secrets Manager 수명 주기 전반에 걸쳐 데이터베이스 자격 증명, 애플리케이션 자격 증명, OAuth 토큰, API 키 및 기타 비밀을 관리, 검색 및 교체하는 데 도움이 됩니다. 다음 예제에서는 Secrets Manager를 사용하여 비밀을 정의하고 steps
를 사용하여 명령을 실행합니다. 자세한 내용은 무엇입니까를 참조하십시오. AWS Secrets Manager AWS Secrets Manager 사용 설명서에서.
version: 0.2 env: secrets-manager: SECRET_VALUE: "arn:aws:secretsmanager:us-east-1:xxxx:secret:/secret-l3IJg9:my_super_secret_key" phases: build: steps: - run: echo $SECRET_VALUE
다음과 비슷한 로그가 표시됩니다.
echo $SECRET_VALUE
env:
SECRET_VALUE: ***
***
환경 변수 샘플
다음 예제에서는 env
시퀀스에 따라 환경 변수를 정의합니다. S3_BUCKET
변수는 buildspec에서 정의되고 해당 값으로 <bucket-name>
이 할당됩니다. 이 변수는 if 조건부에서 일반 환경 변수처럼 달러 기호 ($) 를 사용하여 GitHub Action env 컨텍스트에 액세스하는 방식으로 참조됩니다. 자세한 내용은 env 시퀀스를 참조하세요.
version: 0.2 env: variables: S3_BUCKET: "
<bucket-name>
" phases: build: steps: - if: ${{ env.S3_BUCKET == '<bucket-name>
' }} run: echo "S3 bucket is $S3_BUCKET"
다음과 비슷한 로그가 표시됩니다.
echo "S3 bucket is $S3_BUCKET"
env:
S3_BUCKET: my-s3-bucket
S3 bucket is my-s3-bucket
내보낸 환경 변수 샘플
내보낸 환경 변수는 과 함께 CodePipeline 사용하여 현재 빌드 단계에서 파이프라인의 후속 단계로 환경 변수를 내보내는 데 사용됩니다. 다음 예제에서는 내보낸 환경 변수를 MY_VARIABLE
이라는 env
시퀀스에 따라 정의하고 GITHUB_ENV
환경 파일에 씁니다.
version: 0.2 env: exported-variables: - MY_VARIABLE phases: build: steps: - run: echo "MY_VARIABLE=my-value" >> $GITHUB_ENV
자세한 내용은 AWS CodeBuild API ExportedEnvironmentVariable참조를 참조하십시오.