ビルド成果物を発行してダウンロードする
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: 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: 成果物の名前。
Note
成果物を発行するときに、予約済みフォルダー名のいずれかを使用していないことを確認してください。 詳細については、「アプリケーション フォルダー」を参照してください。
例: 複数のタスクを使用する
- 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 Web プロジェクト フォルダー構造」を参照してください。
Note
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: 成果物がダウンロードされるエージェント コンピューター上のパス。
Note
デプロイ タスクを使用している場合は、$(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 アドレスを許可してください。