자습서: Git 태그를 사용하여 파이프라인 시작하기 - AWS CodePipeline

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

자습서: Git 태그를 사용하여 파이프라인 시작하기

이 자습서에서는 Git 태그 트리거 유형에 대해 소스 작업이 구성된 GitHub 리포지토리에 연결하는 파이프라인을 생성합니다. 커밋에서 Git 태그가 생성되면 파이프라인이 시작됩니다. 이 예제에서는 태그 이름의 구문을 기반으로 태그를 필터링할 수 있는 파이프라인을 만드는 방법을 보여줍니다. Glog 패턴을 사용한 필터링에 대한 자세한 내용은 구문에서 glob 패턴 작업을 참조하세요.

이 자습서는 CodeStarSourceConnection 작업 유형을 GitHub 통해 설명합니다.

참고

이 기능은 아시아 태평양(홍콩), 아프리카(케이프타운), 중동(바레인) 또는 유럽(취리히) 리전에서는 사용할 수 없습니다. 사용 가능한 다른 작업을 참조하려면 제품 및 서비스 통합 CodePipeline을 참조하세요. 유럽(밀라노) 리전에서 이 조치를 고려할 경우 CodeStarSourceConnection 비트버킷 클라우드 GitHub, GitHub 엔터프라이즈 서버, GitLab .com 및 GitLab 자체 관리 작업용의 참고 사항을 참조하세요.

필수 조건

시작하기 전에 다음을 수행해야 합니다.

  • 계정으로 GitHub 리포지토리를 만드세요. GitHub

  • GitHub 자격 증명을 준비하세요. 를 AWS Management Console 사용하여 연결을 설정하면 GitHub 자격 증명으로 로그인하라는 메시지가 표시됩니다.

1단계: 리포지토리를 CloudShell 열고 복제합니다.

명령줄 인터페이스를 사용하여 리포지토리를 복제하고, 커밋하고, 태그를 추가할 수 있습니다. 이 자습서에서는 명령줄 인터페이스용 CloudShell 인스턴스를 시작합니다.

  1. AWS Management Console에 로그인합니다.

  2. 상단 내비게이션 바에서 AWS 아이콘을 선택합니다. AWS Management Console 디스플레이의 기본 페이지입니다.

  3. 상단 내비게이션 바에서 AWS CloudShell 아이콘을 선택합니다. CloudShell 열립니다. CloudShell 환경이 만들어지는 동안 기다려 주세요.

    참고

    CloudShell 아이콘이 보이지 않는 경우 에서 지원하는 지역에 있는지 확인하세요 CloudShell. 이 자습서에서는 사용자가 미국 서부(오레곤) 리전에 있다고 가정합니다.

  4. GitHub에서 저장소로 이동합니다. 코드를 선택한 다음 HTTPS를 선택합니다. 경로를 복사합니다. Git 리포지토리를 복제할 주소는 클립보드에 복사됩니다.

  5. 다음 명령을 실행하여 리포지토리를 복제합니다.

    git clone https://github.com/<account>/MyGitHubRepo.git
  6. GitHub 계정을 Username 입력하고 메시지가 Password 표시되면 입력합니다. Password 항목의 경우 계정 암호 대신 사용자가 만든 토큰을 사용해야 합니다.

2단계: Git 태그에 트리거할 파이프라인 생성

이 단원에서는 다음 작업을 통해 파이프라인을 생성합니다.

  • GitHub 리포지토리 및 작업에 연결된 소스 스테이지.

  • 빌드 작업이 포함된 AWS CodeBuild 빌드 단계.

마법사를 사용하여 파이프라인을 생성하려면
  1. https://console.aws.amazon.com/codepipeline/ 에서 CodePipeline 콘솔에 로그인합니다.

  2. Welcome(시작) 페이지, 시작하기 페이지 또는 Pipelines(파이프라인) 페이지에서 파이프라인 생성을 선택합니다.

  3. 1단계: 파이프라인 설정 선택파이프라인 이름MyGitHubTagsPipeline을 입력합니다.

  4. 파이프라인 유형에서는 기본 선택을 V2로 유지합니다. 파이프라인 유형은 특성과 가격이 다릅니다. 자세한 정보는 파이프라인 유형을 참조하세요.

  5. Service role(서비스 역할)에서 New service role(새 서비스 역할)을 선택합니다.

    참고

    기존 CodePipeline 서비스 역할을 대신 사용하려면 서비스 역할 정책에 codestar-connections:UseConnection IAM 권한을 추가했는지 확인하세요. 서비스 역할에 대한 지침은 CodePipeline 서비스 역할에 권한 추가를 참조하십시오. CodePipeline

  6. 고급 설정에서 기본값을 그대로 둡니다. [아티팩트 스토어(Artifact store)]에서 [기본 위치(Default location)]를 선택하여 파이프라인에 대해 선택한 리전의 파이프라인에 대해 기본값으로 지정된 Amazon S3 아티팩트 버킷과 같은 기본 아티팩트 스토어를 사용합니다.

    참고

    이는 소스 코드에 대한 소스 버킷이 아닙니다. 이 파이프라인은 아티팩트 스토어입니다. S3 버킷과 같은 개별 아티팩트 스토어는 각 파이프라인에 필요합니다.

    다음을 선택합니다.

  7. [2단계: 소스 단계 추가(Step 2: Add source stage)] 페이지에서 소스 단계를 추가합니다.

    1. 소스 공급자에서 GitHub (버전 2) 를 선택합니다.

    2. 연결에서 기존 연결을 선택하거나 새로 생성합니다. GitHub 소스 액션에 대한 연결을 만들거나 관리하려면 을 참조하십시오GitHub 연결.

    3. 리포지토리 이름에서 GitHub 리포지토리 이름을 선택합니다.

    4. 파이프라인 트리거에서 Git 태그를 선택합니다.

      포함 필드에 release*를 입력합니다.

      기본 브랜치에서 파이프라인을 수동으로 시작하거나 Git 태그가 아닌 소스 이벤트로 시작할 때 지정할 브랜치를 선택합니다. 변경 소스가 트리거가 아니거나 파이프라인 실행이 수동으로 시작된 경우 기본 브랜치의 HEAD 커밋이 사용됩니다.

      중요

      트리거 유형의 Git 태그로 시작하는 파이프라인은 WebhookV2 이벤트용으로 구성되며 파이프라인을 시작하는 데 Webhook 이벤트(모든 푸시 이벤트에 대한 변경 감지)를 사용하지 않습니다.

    다음을 선택합니다.

  8. Add build stage(빌드 스테이지 추가)에서 빌드 스테이지를 추가합니다.

    1. 빌드 공급자에서 AWS CodeBuild를 선택합니다. 리전이 파이프라인 리전으로 기본 설정되도록 합니다.

    2. 프로젝트 만들기를 선택합니다.

    3. 프로젝트 이름에 이 빌드 프로젝트의 이름을 입력합니다.

    4. 환경 이미지에서 이미지 관리를 선택합니다. [Operating system]에서 [Ubuntu]를 선택합니다.

    5. 실행 시간에서 표준을 선택합니다. 이미지에서 aws/codebuild/standard:5.0을 선택합니다.

    6. 서비스 역할에서 New service role(새 서비스 역할)을 선택합니다.

      참고

      CodeBuild 서비스 역할의 이름을 기록해 둡니다. 이 자습서의 마지막 단계를 수행하려면 역할 이름이 필요합니다.

    7. [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
    8. 계속하기를 선택합니다 CodePipeline. 그러면 CodePipeline 콘솔로 돌아가고 구성을 위해 빌드 명령을 사용하는 CodeBuild 프로젝트가 만들어집니다. 빌드 프로젝트는 서비스 역할을 사용하여 AWS 서비스 권한을 관리합니다. 이 단계는 몇 분이 걸릴 수 있습니다.

    9. 다음을 선택합니다.

  9. 4단계: 배포 단계 추가 페이지에서 Skip deploy stage(배포 단계 건너뛰기)를 선택한 다음 Skip(건너뛰기)을 다시 선택하여 경고 메시지를 수락합니다. 다음을 선택합니다.

  10. 5단계: 검토 페이지에서 파이프라인 생성을 선택합니다.

3단계: 릴리스용 커밋에 태그 지정

파이프라인을 만들고 Git 태그를 지정한 후 리포지토리에서 커밋에 태그를 지정할 수 있습니다. GitHub 이 단계에서는 release-1 태그로 커밋에 태그를 지정합니다. Git 리포지토리의 각 커밋에는 고유한 Git 태그가 있어야 합니다. 커밋을 선택하고 태그를 지정하면 여러 브랜치의 변경 사항을 파이프라인 배포에 통합할 수 있습니다. 참고로 태그 이름 릴리스는 의 릴리스 개념에는 적용되지 않습니다. GitHub

  1. 태그를 지정할 복사한 커밋 ID를 참조하세요. 각 브랜치의 커밋을 보려면 CloudShell 터미널에서 다음 명령을 입력하여 태그하려는 커밋 ID를 캡처하십시오.

    git log
  2. CloudShell 터미널에서 커밋을 태그하고 오리진으로 푸시하는 명령을 입력합니다. 커밋에 태그를 지정한 후 git 푸시 명령을 사용하여 태그를 오리진에 푸시합니다. 다음 예제에서는 ID 49366bd가 있는 두 번째 커밋에 release-1 태그를 사용하려면 다음 명령을 입력합니다. 이 태그는 파이프라인 release* 태그 필터에 의해 필터링되고 파이프라인을 시작합니다.

    git tag release-1 49366bd
    git push origin release-1
    커밋에 태그를 지정하는 명령을 실행하는 터미널을 사용합니다.

4단계: 변경 사항 릴리스 및 로그 보기

  1. 파이프라인이 성공적으로 실행되면 성공적으로 완료된 빌드 단계에서 로그 보기를 선택합니다.

    로그에서 CodeBuild 빌드 출력을 확인합니다. 명령은 입력된 변수의 값을 출력합니다.

  2. 기록 페이지에서 트리거 열을 확인합니다. 트리거 유형인 GitTag 릴리즈-1을 확인하세요.