小编Sim*_*ost的帖子

Gitlab-CI 规则如果/更改未按预期工作

我们正在与 GitLab CI 合作,刚刚发生了一个奇怪的行为。我们尝试仅在文件发生更改并且处于合并请求而不是简单的 git 分支时运行给定作业(例如,lint如下所示) 。*.py例如,如果我要在 上推送更改Readme.MD,则此处管道的作业Lint将在不应该执行的地方执行。

.gitlab-ci.yml配置:

image: python:3.7

stages:
  - pre-build
  - test

.ci_rules:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_IID'
      changes:
        - tests/*.py
        - tests/*/*.py
        - src/*.py
        - src/*/*.py
    - if: $CI_COMMIT_REF_NAME == "develop"
    - if: $CI_COMMIT_REF_NAME == "main"

lint:
  stage: pre-build
  script:
    - pip install flake8
    - flake8
  rules:
    - !reference [ .ci_rules, rules ]

# [... other jobs not relevant for the issue]
Run Code Online (Sandbox Code Playgroud)

continuous-integration gitlab gitlab-ci devops

15
推荐指数
1
解决办法
3万
查看次数