ビルド成果物を発行してダウンロードする

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Note

パフォーマンスを向上させるために、パイプライン成果物のダウンロードパイプライン成果物の発行を使用することをお勧めします。

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: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop
  • pathToPublish: 成果物のパス。 これは絶対または相対パスにすることができます。 ワイルドカードはサポートしていません。
  • artifactName: 成果物の名前。

Note

成果物を発行するときに、予約済みフォルダー名のいずれかを使用していないことを確認してください。 詳細については、「アプリケーション フォルダー」を参照してください。

例: 複数のタスクを使用する

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- 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: 作成する成果物の名前。

注意

BinApp_Data など、artifactName には予約名を使用しないでください。 詳細については、「ASP.NET Web プロジェクト フォルダー構造」を参照してください。

成果物をダウンロードする

- 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: 成果物がダウンロードされるエージェント コンピューター上のパス。

Note

デプロイ タスクを使用している場合は、$(Agent.BuildDirectory) を使ってビルド成果物を参照できます。 詳細については、エージェント変数に関する記述を参照してください。

パイプラインの実行が完了したら、[概要] に移動して成果物を探索またはダウンロードします。

発行されたビルド成果物

ヒント

  • Azure DevOps Server を使用して個人用アクセス トークンでの認証を許可する場合は、IIS 基本認証を無効にします。 詳細については、「IIS 基本認証と PAT」を参照してください。

  • ファイル パス引数にスラッシュを使用します。 バックスラッシュは、macOS や Linux エージェントでは機能しません。

  • ビルド成果物は Windows ファイルシステムに格納されるため、実行ビットを含め、すべての UNIX アクセス許可が失われます。 Azure Pipelines から成果物をダウンロードした後、正しい UNIX アクセス許可の復元が必要な場合があります。

  • Build.ArtifactStagingDirectoryBuild.StagingDirectory は交換可能です。

  • Build.ArtifactStagingDirectory パスは、各ビルドの後にクリーンアップされます。

  • ファイル共有に発行されたパッケージに関連付けられているビルドを削除すると、その UNC パス内のすべての成果物が削除されます。

  • パッケージをファイル共有に発行する場合は、必ず、ビルド エージェントへのアクセスを提供してください。

  • 組織でファイアウォールが使用されている場合は、必ず、Azure Artifacts のドメイン URL と IP アドレスを許可してください。