Go 프로젝트 빌드 및 테스트

Azure DevOps Services

파이프라인을 사용하여 Go 프로젝트를 자동으로 빌드하고 테스트합니다.

첫 번째 파이프라인 만들기

Azure Pipelines를 새로 사용하시겠습니까? 그렇다면 다른 섹션으로 이동하기 전에 이 섹션을 시도하는 것이 좋습니다.

GitHub에서 다음 리포지토리를 포크합니다.

https://github.com/MicrosoftDocs/pipelines-go

Azure Pipelines 로그인

Azure Pipelines에 로그인합니다. 로그인하면 브라우저가 https://dev.azure.com/my-organization-name 으로 이동하여 Azure DevOps 대시보드를 표시합니다.

선택한 조직 내에서 프로젝트를 만듭니다. 조직에 프로젝트가 없으면 프로젝트를 만들어 시작 화면이 표시됩니다. 그렇지 않으면 대시보드의 오른쪽 위 모서리에 있는 새 프로젝트 단추를 선택합니다.

파이프라인 만들기

  1. Azure DevOps 조직에 로그인하고 프로젝트로 이동합니다.

  2. Pipelines로 이동한 다음, 새 파이프라인을 선택합니다.

  3. 먼저 소스 코드의 위치로 GitHub 선택하여 마법사의 단계를 수행합니다.

  4. 로그인할 GitHub로 리디렉션될 수 있습니다. 그렇다면 GitHub 자격 증명을 입력합니다.

  5. 리포지토리 목록이 표시되면 리포지토리를 선택합니다.

  6. Azure Pipelines 앱을 설치하도록 GitHub로 리디렉션될 수 있습니다. 그렇다면 승인 & 설치를 선택합니다.

구성 탭이 나타나면 이동을 선택합니다. YAML 파일을 구성할 준비가 된 새 파이프라인이 나타납니다 azure-pipelines.yml . 파이프라인을 사용자 지정하는 몇 가지 일반적인 방법을 알아보려면 다음 섹션을 참조하세요.

빌드 환경

Azure Pipelines를 사용하여 자체 인프라를 설정하지 않고도 Go 프로젝트를 빌드할 수 있습니다. Linux, macOS 또는 Windows 에이전트를 사용하여 빌드를 실행할 수 있습니다.

파일에서 azure-pipelines.yml 다음 코드 조각을 업데이트하여 적절한 이미지를 선택합니다.

pool:
  vmImage: 'ubuntu-latest'

최신 버전의 Go는 Microsoft 호스팅 에이전트에 미리 설치되어 있습니다. 미리 설치된 Go의 정확한 버전은 Azure Pipelines에서 Microsoft 호스팅 에이전트를 참조하세요.

Go 설정

Go 1.11부터는 더 이상 환경을 정의 $GOPATH 하거나, 작업 영역 레이아웃을 설정하거나, 모듈을 dep 사용할 필요가 없습니다. 이제 종속성 관리가 기본 제공되었습니다.

이 YAML은 go get Go 패키지 및 해당 종속성을 다운로드하는 명령을 구현합니다. 그런 다음 작업과 함께 PublishBuildArtifacts@1 게시된 콘텐츠를 생성하는 데 사용합니다go build.

trigger: 
 - main

pool:
   vmImage: 'ubuntu-latest'

steps: 
- task: GoTool@0
  inputs:
    version: '1.13.5'
- task: Go@0
  inputs:
    command: 'get'
    arguments: '-d'
    workingDirectory: '$(System.DefaultWorkingDirectory)'
- task: Go@0
  inputs:
    command: 'build'
    workingDirectory: '$(System.DefaultWorkingDirectory)'
- task: CopyFiles@2
  inputs:
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
     artifactName: drop

빌드

Go 프로젝트를 빌드하는 데 사용합니다 go build . 파일에 다음 코드 조각을 추가합니다 azure-pipelines.yml .

- task: Go@0
  inputs:
    command: 'build'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

테스트

go 모듈 및 해당 하위 디렉터리(./...)를 테스트하는 데 사용합니다go test. 파일에 다음 코드 조각을 추가합니다 azure-pipelines.yml .

- task: Go@0
  inputs:
    command: 'test'
    arguments: '-v'
    workingDirectory: '$(modulePath)'

준비가 되면 새 azure-pipelines.yml 파일을 리포지토리에 커밋하고 커밋 메시지를 업데이트합니다. 저장 및 실행을 선택합니다.

새 YAML 파이프라인의 저장 및 실행 단추

파이프라인의 작동을 확인하려면 Azure Pipelines 대시보드의 작업 옵션에서 빌드를 선택합니다. Azure Pipelines 작업 옵션을 선택하면 파이프라인 빌드가 작동합니다.

코드가 Go 템플릿과 일치하는 것처럼 보였기 때문에 파이프라인을 자동으로 만들었습니다.

이제 리포지토리에 사용자 지정할 준비가 된 YAML 파이프라인(azure-pipelines.yml)이 있습니다.

파이프라인을 변경할 준비가 되면 파이프라인 페이지에서 선택한 다음 파일을 편집 합니다 azure-pipelines.yml .

이 문서에 설명된 대로 YAML 파일을 변경하려면 파이프라인 페이지에서 파이프라인을 선택한 다음 편집 을 선택하여 파일에 대한 azure-pipelines.yml 편집기를 엽니다. 더 많은 옵션이 선택되고 편집이 강조 표시된 대시보드에서 Azure Pipeline을 편집하는 방법을 보여 주는 스크린샷

이미지 빌드 및 컨테이너 레지스트리에 푸시

Go 앱의 경우 이미지를 빌드하고컨테이너 레지스트리에 푸시할 수도 있습니다.

Visual Studio Code 대한 Go 확장(Microsoft)