gpt4 book ai didi

azure-devops - 如何在 Azure DevOps 中的 YAML 阶段之间共享文件

转载 作者:行者123 更新时间:2023-12-04 11:11:37 25 4
gpt4 key购买 nike

我正在尝试使用 Azure DevOps 将我的 node.js 代码部署到 Azure Function App。
我使用 YAML 创建了以下 Azure DevOps 管道。

我面临的问题是,在部署步骤中,我的管道失败了,因为它无法找到 package .当我查看日志时,我相信在作业/阶段之间的清理事件期间,文件夹已被清理。我曾尝试使用其他预定义变量,如 Build.ArtifactStagingDirectory但没有一个工作。

trigger:
- master

variables:
azureServiceConnection: 'mySvcCon'
azureFuncApp: myFApp

stages:
- stage: Build_1
displayName: 'Build Stage'
jobs:
- job: build
displayName: 'Build Node.js app'
pool:
vmImage: 'Ubuntu-16.04'

steps:
- task: NodeTool@0
displayName: 'Install Node.js'
inputs:
versionSpec: '8.x'

- script: |
npm install
displayName: 'npm install and build'

- task: CopyFiles@2
displayName: 'Copy necessary files'
inputs:
SourceFolder: '$(System.DefaultWorkingDirectory)'
Contents: |
**/*
!.vscode/**/*
TargetFolder: '$(System.DefaultWorkingDirectory)/copied'

- task: PublishBuildArtifacts@1
displayName: 'Publish artifact'
enabled: true
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/copied'
publishLocation: filePath
targetPath: '$(System.DefaultWorkingDirectory)/publish'

- stage: Deploy_2
displayName: 'Deploy Stage'
jobs:
- job: Deploy
displayName: 'Deploy to Function App'
pool:
vmImage: 'Ubuntu-16.04'

steps:
- task: AzureRMWebAppDeployment@4
displayName: 'AzureRM Function App deploy'
inputs:
ConnectionType: 'AzureRM'
ConnectedServiceName: $(azureServiceConnection)
WebAppKind: 'Function App'
WebAppName: $(azureFuncApp)
Package: '$(System.DefaultWorkingDirectory)/publish'

我如何在阶段之间共享我的工件?如果我将所有步骤放在同一个作业中,则相同的管道会起作用。但我想把它们分开。

最佳答案

通常 - 创建工件通常由 完成构建管道 而部署工件是在 中完成的发布管道 .根据您的使用情况,绝对有机会在单个构建管道中执行这两个操作。当您刚刚开始使用 时,组合尤其有意义。 Azure 管道 因为生态系统可能会因可用的功能数量而不堪重负。有publicized work on merging the release capabilities into the build capabilities to simplify onboarding .

如果第一次部署失败,分离管道确实会给你带来重试部署的好处——这真的取决于你的构建时间有多快。如果您想手动触发环境或环形发布传播,还支持跨环境部署相同的位会更容易。构建/部署分离列表 grows exponentially once you dig into some of the power-user features of release stages .

对于您的工作方式 - 您可以 leverage the dependsOn YAML element to link the subsequent jobs to have an output dependency .

构建管道 - 依赖链

jobs:
- job: InitialA
steps:
- script: echo hello from initial A
- job: InitialB
steps:
- script: echo hello from initial B
- job: Subsequent
dependsOn:
- InitialA
- InitialB
steps:
- script: echo hello from subsequent

19 年 11 月 15 日更新

Devops recently released download task跨 CI/CD 边界使用文件。 Pipeline Artifacts现在也可用于跨阶段共享文件。

关于azure-devops - 如何在 Azure DevOps 中的 YAML 阶段之间共享文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55694545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com