다음을 통해 공유


빌드 아티팩트 게시 및 다운로드

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 주소를 허용하는 지 확인합니다 .