问题描述
我有一个包含多个集成测试集的管道,但是我真的不想在PR构建过程中运行所有测试集。为此,我有一个在主分支上设置的变量
gcc-10 -m64 -fPIC -pipe -bundle -undefined dynamic_lookup -o qml.so const.o alloc.o util.o opt.o libm.o cephes.o lapack.o conmin.o conmax.o nlopt.o \
../lib/libprob.a ../lib/libconmax.a ../lib/libnlopt.a \
\
-llapack -lblas \
-lgfortran \
-lm \
-exported_symbols_list qml.symlist
duplicate symbol _call in:
conmin.o
conmax.o
duplicate symbol _call in:
conmin.o
nlopt.o
ld: 2 duplicate symbols for architecture x86_64
collect2: error: ld returned 1 exit status
我有一个我想运行的声纳质量检查工作
- job: it
displayName: Integration Test
timeoutInMinutes: 360
steps: []
- job: it_billing
displayName: Integration Test
condition: or(eq(variables.isMasterBranch,'True'),eq(variables['it'],'true'))
steps: []
- job: it_rest
displayName: Integration Test
condition: or(eq(variables.isMasterBranch,'true'))
steps: []
没有条件,但是它确实取决于it_billing和it_rest,因为在主构建中,它将收集所有IT覆盖结果并生成报告。
但是,在PR构建中,它可能由于 - job: qa
displayName: SonarQube Analysis
dependsOn:
- it
- it_billing
- it_rest
而跳过了该阶段,是否有一种方法可以执行此操作,而无需诉诸复制特定于PR构建的特定分析阶段?
dependsOn
解决方法
对不起,它无法执行此操作。
默认情况下,如果某个作业不依赖于任何其他作业,则运行;如果 它所依赖的所有工作都已经完成并成功。
您可以在这里在我们的官方文档中引用它-Specify conditions
换句话说,当您运行PR构建时,由于job: qa
和job: it_billing
没有运行,因此job: it_rest
将不会运行。
是否有一种方法可以执行此操作而无需复制分析 阶段有一些公关活动?
您的dependsOn:
可能会更“动态”:
- job: qa
displayName: SonarQube Analysis
dependsOn:
- it
- ${{ if ne(variables['Build.SourceBranchName'],'master') }}:
- it_billing
- it_rest
if表达式检查当前分支,并且它是否与master
不同,它包含两个剩余的依赖关系: it_billing 和 it_rest 。否则,只能预期一个依赖项。