簡體   English   中英

在同一項目中的管道之間下載工件 Gitlab ci

[英]download artifacts between pipelines in the same project Gitlab ci

我目前正在運行 2 個工作。 一個運行一些測試單元,它從基於 php 的項目生成一個 coverage.xml 文件,另一個運行基於該覆蓋文件的 sonarqube 分析。

這是 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

當我以相同的唯一條件運行這 2 個作業時(都只將條件設置為特定分支),聲納作業可以毫無問題地檢索人工制品

一旦我在這兩個作業之間設置不同的唯一條件,這僅在我的單元測試的合並請求中,並且僅在我的聲納掃描的特定分支中。 如果合並請求與僅聲納條件中指定的分支不在同一分支中。 聲納作業無法檢索人工制品。

有什么方法可以將人工制品從一項工作傳遞到另一項具有不同唯一條件的工作?

提前致謝

有沒有辦法將人工制品從一項工作傳遞到另一項具有不同條件的工作?

實際上,條件本身並不重要,只要它們都評估讓作業運行即可。

在合並請求與僅聲納條件中指定的分支不在同一分支中的情況下。 聲納工作無法檢索人工制品。

如果不是only條件中指定的分支,那么sonarqube-scanner作業將不會真正運行……您確定sonarqube-scanner作業真的被觸發了嗎?

只要依賴項的“唯一”子句始終包含依賴項的唯一子句,它就應該運行。 換句話說,測試在所有合並請求上運行,聲納僅在某些合並請求上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM