기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자습서: Git 태그를 사용하여 파이프라인 시작하기
이 자습서에서는 Git 태그 트리거 유형에 대해 소스 작업이 구성된 GitHub 리포지토리에 연결되는 파이프라인을 생성합니다. 커밋에서 Git 태그가 생성되면 파이프라인이 시작됩니다. 이 예제에서는 태그 이름의 구문을 기반으로 태그를 필터링할 수 있는 파이프라인을 만드는 방법을 보여줍니다. Glog 패턴을 사용한 필터링에 대한 자세한 내용은 구문에서 glob 패턴 작업을 참조하세요.
중요
파이프라인 생성의 일환으로 CodePipeline은 고객이 제공하는 S3 아티팩트 버킷을 아티팩트에 사용합니다. (이는 S3 소스 작업에 사용되는 버킷과 다릅니다.) S3 아티팩트 버킷이 파이프라인의 계정과 다른 계정에 있는 경우 S3 아티팩트 버킷을 안전하고 신뢰할 수 AWS 계정 있는에서 소유해야 합니다.
이 자습서는 CodeStarSourceConnection 작업 유형을 통해 GitHub에 연결합니다.
참고
이 기능은 아시아 태평양(홍콩), 아프리카(케이프타운), 중동(바레인) 또는 유럽(취리히) 리전에서는 사용할 수 없습니다. 사용 가능한 다른 작업을 참조하려면 CodePipeline과 제품 및 서비스 통합을 참조하세요. 유럽(밀라노) 리전에서 이 조치를 고려할 경우 Bitbucket Cloud, GitHub, GitHub Enterprise Server, GitLab.com 및 GitLab 자체 관리형 작업용 CodeStarSourceConnection의 참고 사항을 참조하세요.
주제
사전 조건
시작하기 전에 다음을 수행해야 합니다.
-
GitHub 계정을 사용하여 GitHub 리포지토리를 만듭니다.
-
GitHub 자격 증명을 준비합니다. AWS Management Console 를 사용하여 연결을 설정하면 GitHub 자격 증명으로 로그인하라는 메시지가 표시됩니다.
1단계: CloudShell을 열고 리포지토리 복제
명령줄 인터페이스를 사용하여 리포지토리를 복제하고, 커밋하고, 태그를 추가할 수 있습니다. 이 자습서에서는 명령줄 인터페이스용 CloudShell 인스턴스를 시작합니다.
-
AWS Management Console에 로그인합니다.
-
상단 탐색 모음에서 AWS 아이콘을 선택합니다. AWS Management Console 디스플레이의 기본 페이지입니다.
-
상단 탐색 모음에서 AWS CloudShell 아이콘을 선택합니다. CloudShell이 열립니다. CloudShell 환경이 생성되는 동안 기다립니다.
참고
CloudShell 아이콘이 보이지 않는 경우 CloudShell에서 지원하는 리전에 있는지 확인하세요. 이 자습서에서는 사용자가 미국 서부(오레곤) 리전에 있다고 가정합니다.
-
GitHub에서 리포지토리로 이동합니다. 코드를 선택한 다음 HTTPS를 선택합니다. 경로를 복사합니다. Git 리포지토리를 복제할 주소는 클립보드에 복사됩니다.
-
다음 명령을 실행하여 리포지토리를 복제합니다.
git clone https://github.com/<account>/MyGitHubRepo.git -
프롬프트가 표시되면 GitHub 계정
Username과Password를 입력합니다.Password항목의 경우 계정 암호 대신 사용자가 만든 토큰을 사용해야 합니다.
2단계: Git 태그에 트리거할 파이프라인 생성
이 단원에서는 다음 작업을 통해 파이프라인을 생성합니다.
-
GitHub 리포지토리 및 작업에 대한 연결이 있는 소스 단계입니다.
-
빌드 작업이 있는 AWS CodeBuild 빌드 단계입니다.
마법사를 사용하여 파이프라인을 생성하려면
-
https://console.aws.amazon.com/codepipeline/
에서 CodePipeline 콘솔에 로그인합니다. -
Welcome(시작) 페이지, 시작하기 페이지 또는 Pipelines(파이프라인) 페이지에서 파이프라인 생성을 선택합니다.
-
1단계: 생성 옵션 선택 페이지의 생성 옵션에서 사용자 지정 파이프라인 빌드 옵션을 선택합니다. 다음을 선택합니다.
-
2단계: 파이프라인 설정 선택의 파이프라인 이름에
MyGitHubTagsPipeline을 입력합니다. -
파이프라인 유형에서는 기본 선택을 V2로 유지합니다. 파이프라인 유형은 특성과 가격이 다릅니다. 자세한 내용은 파이프라인 유형 단원을 참조하십시오.
-
Service role(서비스 역할)에서 New service role(새 서비스 역할)을 선택합니다.
참고
역할을 생성하지 않고 기존 CodePipeline 서비스 역할을 사용할 경우 서비스 역할 정책에 대한
codestar-connections:UseConnectionIAM 권한을 추가해야 합니다. CodePipeline 서비스 역할에 대한 지침은 CodePipeline 서비스 역할에 권한 추가를 참조하세요. -
고급 설정에서 기본값을 그대로 둡니다. [아티팩트 스토어(Artifact store)]에서 [기본 위치(Default location)]를 선택하여 파이프라인에 대해 선택한 리전의 파이프라인에 대해 기본값으로 지정된 Amazon S3 아티팩트 버킷과 같은 기본 아티팩트 스토어를 사용합니다.
참고
이는 소스 코드에 대한 소스 버킷이 아닙니다. 이 파이프라인은 아티팩트 스토어입니다. S3 버킷과 같은 개별 아티팩트 스토어는 각 파이프라인에 필요합니다.
다음을 선택합니다.
-
3단계: 소스 스테이지 추가 페이지에서 소스 스테이지를 추가합니다.
-
소스 공급자에서 GitHub(GitHub 앱 사용)를 선택합니다.
-
연결에서 기존 연결을 선택하거나 새로 생성합니다. GitHub 소스 작업에 대한 연결을 만들거나 관리하려면 GitHub 연결을 참조하세요.
-
리포지토리 이름에서 GitHub 리포지토리의 이름을 선택합니다.
-
기본 브랜치에서 파이프라인을 수동으로 시작하거나 Git 태그가 아닌 소스 이벤트로 시작할 때 지정할 브랜치를 선택합니다. 변경 소스가 트리거가 아니거나 파이프라인 실행이 수동으로 시작된 경우 기본 브랜치의 HEAD 커밋이 사용됩니다.
-
Webhook 이벤트의 필터 유형에서 태그를 선택합니다.
태그 또는 패턴 필드에
release*를 입력합니다.중요
트리거 유형의 Git 태그로 시작하는 파이프라인은 WebhookV2 이벤트용으로 구성되며 파이프라인을 시작하는 데 Webhook 이벤트(모든 푸시 이벤트에 대한 변경 감지)를 사용하지 않습니다.
다음을 선택합니다.
-
-
Add build stage(빌드 스테이지 추가)에서 빌드 스테이지를 추가합니다.
-
빌드 공급자에서 AWS CodeBuild를 선택합니다. 리전이 파이프라인 리전으로 기본 설정되도록 합니다.
-
프로젝트 생성을 선택합니다.
-
프로젝트 이름에 이 빌드 프로젝트의 이름을 입력합니다.
-
환경 이미지에서 이미지 관리를 선택합니다. [Operating system]에서 [Ubuntu]를 선택합니다.
-
실행 시간에서 표준을 선택합니다. 이미지에서 aws/codebuild/standard:5.0을 선택합니다.
-
서비스 역할에서 New service role(새 서비스 역할)을 선택합니다.
참고
CodeBuild 서비스 역할의 이름을 기록해 둡니다. 이 자습서의 마지막 단계를 수행하려면 역할 이름이 필요합니다.
-
[Buildspec]의 [빌드 사양(Build specifications)]에서 [빌드 명령 삽입(Insert build commands)]을 선택합니다. 편집기로 전환을 선택하고 빌드 명령에 다음을 붙여 넣습니다.
version: 0.2 #env: #variables: # key: "value" # key: "value" #parameter-store: # key: "value" # key: "value" #git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 #commands: # - command # - command #pre_build: #commands: # - command # - command build: commands: - #post_build: #commands: # - command # - command artifacts: files: - '*' # - location name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths -
Continue to CodePipeline(CodePipeline으로 계속)을 선택합니다. 그러면 CodePipeline 콘솔로 돌아가고 구성을 위해 빌드 명령을 사용하는 CodeBuild 프로젝트가 생성됩니다. 빌드 프로젝트는 서비스 역할을 사용하여 AWS 서비스 권한을 관리합니다. 이 단계는 몇 분이 걸릴 수 있습니다.
-
다음을 선택합니다.
-
-
5단계: 테스트 스테이지 추가에서 테스트 스테이지 건너뛰기를 선택하고 건너뛰기를 다시 선택하여 경고 메시지를 수락합니다.
다음을 선택합니다.
-
6단계: 배포 단계 추가 페이지에서 배포 단계 건너뛰기를 선택한 다음 다시 건너뛰기를 선택하여 경고 메시지를 수락합니다. 다음을 선택합니다.
-
7단계: 검토에서 파이프라인 생성을 선택합니다.
3단계: 릴리스용 커밋에 태그 지정
파이프라인을 생성하고 Git 태그를 지정한 후 GitHub 리포지토리에서 커밋에 태그를 지정할 수 있습니다. 이 단계에서는 release-1 태그로 커밋에 태그를 지정합니다. Git 리포지토리의 각 커밋에는 고유한 Git 태그가 있어야 합니다. 커밋을 선택하고 태그를 지정하면 여러 브랜치의 변경 사항을 파이프라인 배포에 통합할 수 있습니다. 단, 태그 이름 릴리스는 GitHub의 릴리스 개념에는 적용되지 않습니다.
-
태그를 지정할 복사한 커밋 ID를 참조하세요. 각 브랜치의 커밋을 보려면 CloudShell 터미널에서 다음 명령을 입력하여 태그하려는 커밋 ID를 캡처합니다.
git log -
CloudShell 터미널에서 커밋에 태그를 지정하고 오리진으로 푸시하는 명령을 입력합니다. 커밋에 태그를 지정한 후 git 푸시 명령을 사용하여 태그를 오리진에 푸시합니다. 다음 예제에서는 ID
49366bd가 있는 두 번째 커밋에release-1태그를 사용하려면 다음 명령을 입력합니다. 이 태그는 파이프라인release*태그 필터에 의해 필터링되고 파이프라인을 시작합니다.git tag release-1 49366bdgit push origin release-1
4단계: 변경 사항 릴리스 및 로그 보기
-
파이프라인이 성공적으로 실행되면 성공적으로 완료된 빌드 단계에서 로그 보기를 선택합니다.
로그에서 CodeBuild 빌드 출력을 확인합니다. 명령은 입력된 변수의 값을 출력합니다.
-
기록 페이지에서 트리거 열을 확인합니다. 트리거 유형 GitTag : release-1을 확인합니다.