我有这两个阶段
Vector3 forceDir = boxTransform.position - hit.point;
如您所见,stages:
- stage: PrepareBuildTools
jobs:
- job:
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- stage: Build
jobs:
- job:
steps:
- task: DotNetCoreCLI@2
displayName: 'Initialize EntityFrameworkCore'
inputs:
command: custom
custom: tool
arguments: 'install --global dotnet-ef'
- task: DotNetCoreCLI@2
displayName: 'Create migration'
inputs:
command: custom
custom: ef
arguments: 'migrations script -i -o $(System.DefaultWorkingDirectory)\migration.sql --project $(dbProject) -s $(startUpProject)'
- task: VSBuild@1
displayName: Build solution
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: FileTransform@1
displayName: Transform appSettings.json
inputs:
folderPath: '$(build.artifactStagingDirectory)\WebApp.zip'
fileType: 'json'
targetFiles: '**/appsettings.json'
任务构建解决方案并在 Build solution
中生成 WebApp.zip
问题是在后续阶段,ZIP 文件不存在,这让我相信这些阶段都在自己的环境(不同的虚拟机?)中运行。
有没有办法确保每个阶段都在相同的环境中运行?我真的不需要它们在不同的阶段运行,我主要想使用阶段,这样我就可以在最终的“部署”阶段之前进行批准。
我尝试在我的 YAML 定义文件的根目录定义一个池:
D:\a\1\a\
然后假设所有阶段都会在那个阶段运行,但没有。
答案 0 :(得分:1)
我不得不添加更多的任务来完成这项工作
- task: CopyFiles@2
displayName: Copy build output
inputs:
contents: '$(build.artifactStagingDirectory)\WebApp.zip'
targetFolder: '$(Build.StagingDirectory)'
- task: CopyFiles@2
displayName: Copy migration file
inputs:
contents: '$(System.DefaultWorkingDirectory)\migration.sql'
targetFolder: '$(Build.StagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.StagingDirectory)'
ArtifactName: 'buildoutput'
publishLocation: 'Container'
在我需要上述文件的阶段,只需下载工件
- task: DownloadBuildArtifacts@0
inputs:
artifactName: 'buildoutput'
buildType: 'current'
downloadType: 'single'
downloadPath: '$(System.ArtifactsDirectory)'
然后我可以这样使用它们:$(System.ArtifactsDirectory)\buildoutput\WebApp.zip