Continuous integration GitLab CI/CD:仅当特定扩展添加到文件夹和合并请求时触发管道

Continuous integration GitLab CI/CD:仅当特定扩展添加到文件夹和合并请求时触发管道,continuous-integration,gitlab,zip,gitlab-ci,gitlab-ci-trigger,Continuous Integration,Gitlab,Zip,Gitlab Ci,Gitlab Ci Trigger,在我的gitlab repo上,只有当特定文件夹发生更改时,我才需要触发管道,而当它是合并请求时(两种情况都需要)。特别是在.zip文件扩展名上,即在该文件夹中添加一个新的zip文件,创建一个合并请求,然后运行管道 这是我的初始管道yaml代码: trigger-ci-zip-file-only: stage: prebuild extends: - .prebuild - .preprod-tags variables: PROJECT_FOLDER: &q

在我的gitlab repo上,只有当特定文件夹发生更改时,我才需要触发管道,而当它是合并请求时(两种情况都需要)。特别是在
.zip
文件扩展名上,即在该文件夹中添加一个新的zip文件,创建一个合并请求,然后运行管道

这是我的初始管道yaml代码:

trigger-ci-zip-file-only:
  stage: prebuild
  extends:
    - .prebuild
    - .preprod-tags
  variables:
    PROJECT_FOLDER: "my-specific-folder"
  before_script:
    - echo "Job currently run in $CI_JOB_STAGE"
    - touch ${CI_PROJECT_DIR}/$PROJECT_FOLDER/prebuild.env
    - cd $PROJECT_FOLDER
  only:
    refs:
      - merge_requests
    changes:
      - ${PROJECT_FOLDER}/*.zip
  artifacts:
    reports:
      dotenv: ${CI_PROJECT_DIR}/${PROJECT_FOLDER}/prebuild.env
  allow_failure: false
如您所见,只有在zip文件和MR上的特定文件夹发生更改时,才会触发我的管道。但在这种状态下,创建MR或推送现有MR时,管道始终运行,即使特定文件夹中没有更改或添加

我还尝试对管道yaml代码进行如下更改:

only:
  refs:
    - merge_requests
      changes:
      - ${PROJECT_FOLDER}/**/*.zip
但管道一直在运行

我也试过这个:

trigger-ci-zip-file-only:
  stage: prebuild
  extends:
    - .prebuild
    - .preprod-tags
  variables:
    PROJECT_FOLDER: "my-specific-folder"
  before_script:
    - echo "Job currently run in $CI_JOB_STAGE"
    - touch ${CI_PROJECT_DIR}/$PROJECT_FOLDER/prebuild.env
    - cd $PROJECT_FOLDER
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - changes:
    - ${PROJECT_FOLDER}/**/*.zip
  when: always
  artifacts:
    reports:
      dotenv: ${CI_PROJECT_DIR}/${PROJECT_FOLDER}/prebuild.env
  allow_failure: false
但管道也一直在运行


如何确保管道仅在合并请求时运行,并且仅在将.zip文件添加到特定文件夹时运行?

是否正在尝试将上述管道合并到主文件夹中?这将不起作用,因为合并请求管道仅为合并请求创建,并且当zip文件夹处于打开状态时才创建changed@danielnelz实际上,管道的目的是在测试环境中创建第一个部署,该部署仅链接到合并请求,然后将合并到主分支中以在生产中部署。创建新的合并请求时,管道必须仅在添加新的.zip文件时启动,因为链接到此管道的作业必须只考虑此.zip文件