gitlab - 在同一项目 Gitlab ci 中的管道之间下载工件
问题描述
我目前正在运行 2 个工作。一个运行一些测试单元,该单元从基于 php 的项目生成一个coverage.xml 文件,另一个运行基于该覆盖文件的声纳分析。
这是 gitlab-ci.yml :
stages:
- tests
- sonar
tests:
stage: "tests"
image: some-image
only:
- merge_requests
script:
- script.sh
artifacts:
paths:
- var/php/xml/coverage.xml
sonarqube-scanner:
stage: "sonar"
only:
- specific_branch
image:
name: sonarsource/sonar-scanner-cli:latest
cache:
key: ${CI_JOB_NAME}
paths:
- .sonar/cache
script:
- sonar-scanner -Dsonar.php.coverage.reportPaths=#with_some_parameters
allow_failure: false
dependencies:
- tests
当我以相同的唯一条件运行这两个作业时(两者都只有条件设置为特定分支),声纳作业可以毫无问题地检索人工制品
一旦我在这两个作业之间设置了不同的唯一条件,这仅在我的单元测试的合并请求中,并且仅在我的声纳扫描的特定分支中。如果合并请求与仅在声纳条件中指定的分支不在同一分支中。声纳作业无法检索人工制品。
有什么方法可以将工件从一个工作传递到另一个具有不同唯一条件的工作?
提前致谢
解决方案
有什么方法可以将工件从一个工作传递到另一个具有不同唯一条件的工作?
实际上,条件本身并不重要,只要它们都评估为让作业运行即可。
如果合并请求与仅在声纳条件中指定的分支不在同一分支中。声纳作业无法检索人工制品。
如果不是only
条件指定的分支,则sonarqube-scanner
作业不会实际运行……您确定sonarqube-scanner
作业真的被触发了吗?
推荐阅读
- python - 在 excel 列中搜索匹配的文本值,打印行#s
- python - 为什么显示后窗口的位置仍然为零?
- regex - 公式通过向下拖动鼠标起作用,但不适用于 ArrayFormula
- javascript - 一个函数处理多个按钮
- sql - 为什么我的代码中不断出现此错误?
- javascript - VB.NET:未知的网络方法
- android - 签名 APK 中的空响应 - 调试 APK 中的正确响应
- ansible - 如何使用 (delegate_to) 修复成为 root 用户?
- reactjs - Formik 组件未使用 react-tabs 呈现
- corda - 查询公证节点