I have a build pipeline in Azure Devops which has the below configuration to create an artifact for the APIs. I have a separate integration testing project which I would like to publish as part of the build pipeline.
- task: DotNetCoreCLI@2
displayName: Publish and Zip Project
inputs:
command: publish
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(Build.BuildId)'
modifyOutputPath: false
zipAfterPublish: true
publishWebProjects: false
projects: '**/My.API.csproj'
- task: PublishPipelineArtifact@1
displayName: Publish App
inputs:
targetPath: $(Build.ArtifactStagingDirectory)/$(Build.BuildId)
artifact: MyApi-Release
publishLocation: pipeline
Can I add the below tasks to build the integration testing artifact? However is there a way to push the files for integration testing into a different directory or clean up $(Build.ArtifactStagingDirectory)/$(Build.BuildId)
before it is pushed and zipped?
- task: DotNetCoreCLI@2
displayName: Publish and Zip Integration Testing Project
inputs:
command: publish
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(Build.BuildId)'
modifyOutputPath: false
zipAfterPublish: true
publishWebProjects: false
projects: '**/My.API.IntegrationTests.csproj'
- task: PublishPipelineArtifact@1
displayName: Publish Integration Testing App
inputs:
targetPath: $(Build.ArtifactStagingDirectory)/$(Build.BuildId)
artifact: MyApi-IntTest-Release
publishLocation: pipeline
Yes of course you can add subdirectory like $(Build.ArtifactStagingDirectory)/API/$(Build.BuildId)
and $(Build.ArtifactStagingDirectory)/Integration/$(Build.BuildId)
- task: DotNetCoreCLI@2
displayName: Publish and Zip Project
inputs:
command: publish
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)/API/$(Build.BuildId)'
modifyOutputPath: false
zipAfterPublish: true
publishWebProjects: false
projects: '**/My.API.csproj'
- task: PublishPipelineArtifact@1
displayName: Publish App
inputs:
targetPath: $(Build.ArtifactStagingDirectory)/API/$(Build.BuildId)
artifact: MyApi-Release
publishLocation: pipeline
and
- task: DotNetCoreCLI@2
displayName: Publish and Zip Integration Testing Project
inputs:
command: publish
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)/Integration/$(Build.BuildId)'
modifyOutputPath: false
zipAfterPublish: true
publishWebProjects: false
projects: '**/My.API.IntegrationTests.csproj'
- task: PublishPipelineArtifact@1
displayName: Publish Integration Testing App
inputs:
targetPath: $(Build.ArtifactStagingDirectory)/Integration/$(Build.BuildId)
artifact: MyApi-IntTest-Release
publishLocation: pipeline
Of course you can put this in single job.