빌드 아티팩트 게시 및 다운로드
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
참고 항목
더 빠른 성능을 위해 파이프라인 아티팩트 다운로드 및 파이프라인 아티팩트 게시를 사용하는 것이 좋습니다.
Azure Artifacts를 사용하면 팀이 피드 및 업스트림 원본을 사용하여 종속성을 관리할 수 있습니다. Azure Pipelines를 사용하여 CI/CD 워크플로의 일부로 다양한 유형의 아티팩트를 게시하고 다운로드할 수 있습니다.
아티팩트 게시
아티팩트 파이프라인의 모든 단계에서 게시할 수 있습니다. YAML 또는 클래식 Azure DevOps 편집기를 사용하여 패키지를 게시할 수 있습니다.
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop
- pathToPublish: 아티팩트 경로입니다. 절대 경로 또는 상대 경로일 수 있습니다. 와일드카드는 지원되지 않습니다.
- artifactName: 아티팩트 이름입니다.
참고 항목
아티팩트 게시 시 예약된 폴더 이름 중 하나를 사용하지 않는지 확인합니다. 자세한 내용은 애플리케이션 폴더를 참조하세요.
예: 여러 작업 사용
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop1
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop2
- pathToPublish: 아티팩트 경로입니다. 절대 경로 또는 상대 경로일 수 있습니다. 와일드카드는 지원되지 않습니다.
- artifactName: 아티팩트 이름입니다.
예: 이진 파일 복사 및 게시
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop
- sourceFolder: 복사할 파일이 포함된 폴더입니다. 이 값을 비워 두면 $(Build.SourcesDirectory)에서 복사가 수행됩니다.
- contents: 복사본의 일부로 포함할 파일 경로입니다.
- targetFolder: 대상 폴더입니다.
- pathToPublish: 게시할 폴더 또는 파일 경로입니다. 절대 경로 또는 상대 경로일 수 있습니다. 와일드카드는 지원되지 않습니다.
- artifactName: 만들려는 아티팩트 이름입니다.
참고 항목
bin 또는 App_Data 같은 artifactName에 예약된 이름을 사용하지 않도록 합니다. 자세한 내용은 ASP.NET 웹 프로젝트 폴더 구조를 참조하세요.
참고 항목
Build.ArtifactStagingDirectory
각 빌드 후에 경로가 정리됩니다. 이 경로를 사용하여 아티팩트 게시하는 경우 게시 단계 전에 이 디렉터리에 게시하려는 콘텐츠를 복사해야 합니다.
아티팩트 다운로드
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- buildType: 다운로드
current
할 빌드 아티팩트(기본값) 또는 특정 빌드를 지정합니다. - downloadType: 단일 아티팩트 또는 특정 빌드의 모든 아티팩트를 다운로드할지 여부를 선택합니다.
- artifactName: 다운로드할 아티팩트 이름입니다.
- downloadPath: 아티팩트가 다운로드될 에이전트 컴퓨터의 경로입니다.
참고 항목
배포 작업을 사용하는 경우 $(Agent.BuildDirectory)를 사용하여 빌드 아티팩트를 참조할 수 있습니다. 자세한 내용은 에이전트 변수를 참조하세요.
파이프라인 실행이 완료되면 요약으로 이동하여 아티팩트 탐색 또는 다운로드를 수행합니다.
특정 아티팩트 다운로드
steps:
- task: DownloadBuildArtifacts@1
displayName: 'Download Build Artifacts'
inputs:
buildType: specific
project: 'xxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxx'
pipeline: 20
buildVersionToDownload: specific
buildId: 128
artifactName: drop
extractTars: false
팁
Azure DevOps Server를 사용하여 개인 액세스 토큰으로 인증을 허용하는 경우 IIS 기본 인증을 사용하지 않도록 설정합니다. 자세한 내용은 IIS 기본 인증 및 PAT를 참조하세요.
파일 경로 인수에서 슬래시를 사용합니다. 백슬라이시는 macOS/Linux 에이전트에서 작동하지 않습니다.
빌드 아티팩트가 Windows 파일 시스템에 저장되어 실행 비트를 포함하여 모든 UNIX 권한이 손실됩니다. Azure Pipelines에서 아티팩트 다운로드 후 올바른 UNIX 권한을 복원해야 할 수 있습니다.
Build.ArtifactStagingDirectory
서로Build.StagingDirectory
교환할 수 있습니다.Build.ArtifactStagingDirectory
각 빌드 후에 경로가 정리됩니다.파일 공유에 게시된 패키지와 연결된 빌드를 삭제하면 해당 UNC 경로에 있는 모든 아티팩트가 삭제됩니다.
패키지를 파일 공유에 게시하는 경우 빌드 에이전트에 대한 액세스를 제공해야 합니다.
조직에서 방화벽을 사용하는 경우 Azure Artifacts 도메인 URL 및 IP 주소를 허용하는 지 확인합니다 .