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 대시보드를 표시합니다.
- 브라우저에서 dev.azure.com 이동하여 로그인합니다.
- 조직을 선택합니다.
- 조직에서 첫 번째 프로젝트를 만드는 경우 새 프로젝트를 선택하거나 프로젝트 만들기를 선택하여 새 프로젝트를 만듭니다.
- 프로젝트 이름을 입력합니다.
- 프로젝트의 표시 유형을 선택합니다.
- 만들기를 실행합니다.
- 브라우저에서 Azure DevOps Server로 이동합니다.
- 컬렉션을 선택합니다.
- 컬렉션에서 첫 번째 프로젝트를 만드는 경우 새 프로젝트를 선택하거나 프로젝트 만들기를 선택하여 새 프로젝트를 만듭니다.
- 프로젝트 이름을 입력합니다.
- 프로젝트의 표시 유형을 선택합니다.
- 만들기를 선택합니다.
파이프라인 만들기
Azure DevOps 조직에 로그인하고, 프로젝트로 이동합니다.
파이프라인으로 이동한 다음 새 파이프라인을 선택하거나 첫 번째 파이프라인을 만드는 경우 파이프라인 만들기를 선택합니다.
먼저 소스 코드의 위치로 GitHub 선택하여 마법사의 단계를 수행합니다.
로그인할 GitHub로 리디렉션될 수 있습니다. 그렇다면 GitHub 자격 증명을 입력합니다.
리포지토리 목록이 표시되면 리포지토리를 선택합니다.
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: '$(System.DefaultWorkingDirectory)'
준비가 되면 새 azure-pipelines.yml 파일을 리포지토리에 커밋하고 커밋 메시지 업데이트합니다. 저장 및 실행을 선택합니다.
파이프라인의 작동을 감시하려면 Azure Pipelines 대시보드의 작업 옵션에서 빌드를 선택합니다.
코드가 Go 템플릿과 일치하는 것처럼 보였기 때문에 파이프라인을 자동으로 만들었습니다.
이제 리포지토리에 사용자 지정할 준비가 된 YAML 파이프라인(azure-pipelines.yml
)이 있습니다.
파이프라인을 변경할 준비가 되면 파이프라인 페이지에서 해당 파이프라인을 선택한 다음 파일을 편집합니다azure-pipelines.yml
.
팁
이 문서에 설명된 대로 YAML 파일을 변경하려면 파이프라인 페이지에서 파이프라인을 선택한 다음 편집을 선택하여 파일에 대한 azure-pipelines.yml
편집기를 엽니다.
이미지 빌드 및 컨테이너 레지스트리에 푸시
Go 앱의 경우 이미지를 빌드하고 컨테이너 레지스트리에 푸시할 수도 있습니다.
관련 확장
Visual Studio Code 용 Go 확장(Microsoft)