.gitlab-ci.yml 更改目录中的动态路径

问题描述 投票:0回答:1

有没有办法获取代码被更改的目录路径?我希望能够运行一个仅扫描更改的特定目录的脚本

    stage1:
       stage: stage-name
       script:  
           - scan --path "$SCAN_PATH"
       rules:
           - if: $CI_PIPELINE_SOURCE == "merge_request_event"`
       changes:
           - /example-path/**/* 
       allow_failure: true

我尝试搜索多个 gitlab 变量但找不到任何相关内容

编辑:更改了示例的编辑路径

gitlab yaml gitlab-ci-runner
1个回答
0
投票

有一种方法可以动态实现此目的,尽管它需要在矩阵下列出文件夹上可用的不同路径。在 GitLab 中,没有变量可以直接为您提供此信息,因此此设置将作为解决方法。

以您为例,上述想法的实现如下所示:

stage1:
    stage: stage-name
    parallel:
    matrix:
      - SCAN_PATH: 
        - /example-subdir
        - /example-subdir2
    script:  
        - scan --path "$SCAN_PATH"
    rules:
        - if: $CI_PIPELINE_SOURCE == "merge_request_event"`
          changes:
            paths:
                - /example-path/$SCAN_PATH/* 
    allow_failure: true

它将为每个更新的文件夹生成一个作业,该作业将扫描特定路径。如果有一个文件夹未收到更新,则由于

rules:if
条件

,该作业将不会触发
© www.soinside.com 2019 - 2024. All rights reserved.