有什么方法可以运行具有稳定分支的功能分支更改的管道吗?
1)我有 2 个分支,分别称为 develop和feature。
develop2)我正在尝试在分支与分支之间执行拉取请求feature。
3)我已经在开发分支策略下进行了配置以运行成功的管道。使用了以下文档
4)当我们运行拉取请求时,它会合并并在分支更改的develop分支上运行管道feature还是仅在develop分支上运行管道?
坦率地说,我的问题是,当启动 PR 时,它会处理子分支与源分支的新更改并在源分支上运行管道吗?
谢谢!
我有一个用 YAML 编写的 Azure Pipeline,只要对分支进行更改,它就会从 CI 触发器运行master。它还可以从拉取请求或由用户针对任何分支手动触发。
由于使用了许多许可组件,因此构建master需要在特定代理上运行。其他版本则不然,事实上我宁愿它们在其他代理上运行。
所以我的问题是,有没有办法根据触发构建的内容或构建正在构建的分支来在 YAML 管道中指定不同的代理/池?我希望这是在管道中永久配置的行为,而不是要求用户在他们希望在其他地方构建的每个分支上更新 YAML。
我在有关池/需求/条件关键字的文档部分中看不到任何明显的内容。
我有一个用于构建管道的模板存储库,名为“azure-templates-repo”,我有 python 任务模板,如下所述:
steps:
- task: PythonScript@0
inputs:
scriptSource: 'filepath'
scriptPath: 'python_test.yml' #this is located on repo: 'azure-templates-repo'
Run Code Online (Sandbox Code Playgroud)
azure-pipeline.yml我的问题是关于 scriptPath,当我在存储库的构建管道中使用此模板时,azure 尝试在文件真正所在的位置my-great-app查找该文件。my-great-appazure-templates-repo
那么,有没有办法提及 azure 任务“pythonScript”的 filePath 参数的存储库?
我正在使用天蓝色的构建和发布管道。据我了解,构建管道会生成可供发布管道使用的工件,并且部署可以组织成多个阶段,并提供部署/重新部署阶段的选项。
但是,我还注意到发布管道中可用的所有任务也可以在构建管道中使用。构建管道的文档还指出它可用于构建、测试和部署。那么使用发布管道到底有什么好处呢?
azure azure-devops azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline
鉴于 azure 应用程序服务设置是在 azure 门户中完成的,并且除了服务连接之外,还设置了 azure devops 管道。有没有办法使用基于 Arm 模板的基础设施 yaml 管道来自动创建服务连接?我们想要运行此管道并更新用户 yaml 管道中的服务连接。
我有一个在 YAML 中运行的 Azure DevOps 管道。
我正在使用 VSTest@2 任务来执行一些单元测试。这一切都工作正常,我看到测试结果出现在阶段概述 UI 本身以及标题中的“测试和覆盖范围”概述中。
我的 YAML 管道还会向 Slack 通道发布一条消息,其中包含指向构建、成功/失败状态和其他内容的链接。我也热衷于将测试结果添加到消息中...只是一个简单的“总测试 X - 通过 X - 失败 X - 跳过 X”显示。这发生在最后的一个单独的阶段。
有没有办法在管道的后期(在不同的代理上运行)中获取前一阶段的测试结果?
测试是否可作为工件使用,如果是,它们在哪里以及以什么格式提供?
我认为唯一的方法是通过 Azure API 是正确的吗?(我真的懒得为了这个功能而在管道中设置身份验证,我在其他任何地方都不与 API 交互)
我希望用户在单击“运行管道”按钮之前输入变量的值
我有空变量pipeline.yml:
- name: projectName
value:
Run Code Online (Sandbox Code Playgroud)
但 UI 没有显示:
我应该如何为用户输入定义 var?
我有一个合适的地方,我必须使用 power shell 触发我的发布管道,所以我必须使用 azure cli,所以他们的任何命令都可以使用 azure cli 触发我的发布管道
azure azure-cli azure-devops azure-functions azure-pipelines
我正在尝试想出一种方法,允许在构建管道中轻松选择给定代理,仅用于调试目的。到目前为止,我有以下片段。两者都可以在没有 if 片段的情况下工作,但我试图根据设置的参数或设置的 inturn 变量来执行其中之一,这样如果处于调试模式,它将选择并代理,如果不是,则它只需使用池来选择一个代理来运行构建。但到目前为止还没有运气。
variables:
debugMode: 'false'
parameters:
- name: poolOption
type: string
default: 'ZupaDeploymentPool'
- name: debugMode
type: string
default: 'true'
- name: debugMachine
type: string
default: 'ZUPBUILD03'
trigger:
batch: true
branches:
include:
- master
paths:
exclude:
- README.md
${{ if ne($(debugMode), 'false') }}:
pool: ${{ parameters.poolOption }}
${{ if ne($(debugMode), 'true') }}:
pool:
name: ${{ parameters.poolOption }}
demands:
- Agent.Name -equals ${{ parameters.debugMachine }}
Run Code Online (Sandbox Code Playgroud) 在我的 NestJS 项目中,本地构建和运行是可行的,但是当在我的 Azure 管道中构建相同的代码时,它最近开始失败,因为在命令中找不到某些模块npm run build。当我在本地运行该命令时,没有任何问题并且可以正确构建。
有许多模块确实可以正确找到(或没有给出错误),那么为什么这些模块不能呢?您可以在 Imgur 上的此图像中找到我的文件布局的图像,并且相关文件可见。所有类都被声明为,export class ... {}并且大多数类也被导入到 AppModule 中,它们不会给出错误。
管道布置(相关部分):
trigger:
- master
- dev
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
displayName: 'Install Node 12'
inputs:
versionSpec: 12.0.0
- script: |
npm install -g typescript
npm install
npm test
displayName: 'run tests'
- script: |
npm run build
displayName: 'build dist folder'
Run Code Online (Sandbox Code Playgroud)
管道日志:(相关部分)
Generating script.
Script contents:
npm run build
========================== Starting Command Output ===========================
> fleetbot-nestjs@0.0.1 …Run Code Online (Sandbox Code Playgroud) azure-pipelines ×10
azure-devops ×8
azure ×4
azure-cli ×1
azure-pipelines-release-pipeline ×1
deployment ×1
git ×1
nestjs ×1
node.js ×1
nunit ×1
unit-testing ×1
yaml ×1