GitLab CI 只有 运行 一份工作而不是其他工作

GitLab CI only running one job and not other job

我有以下 .gitlab-ci.yml 配置,我希望作业 update-environment 仅在推送到 main 或 MR 到 main 时 运行。

通过 printenv 调试 gitlab 环境变量我可以看到定义的两个规则都应该评估为真。但是这份工作从来没有 运行s。是否需要在一个阶段定义工作,还是我遗漏了什么?

default:
  image: alpine
  tags:
    - "workstation"

validation:
  script:
    - |
      echo "I will always run"
      printenv # Checking GitLab Environment Variables

update-environment:
  rules:
    # - changes:
    #   - "*.yaml"
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "$CI_DEFAULT_BRANCH"'
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "$CI_DEFAULT_BRANCH"'
  script:
    - |
      echo "Updating environment"

你能试试这个吗

stages:
  - check
  - main

validation:
  stage: check
  script:
    - |
      echo "I will always run"
      printenv # Checking GitLab Environment Variables

update-environment:
  stage: main
  rules:
    # - changes:
    #   - "*.yaml"
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
  script:
    - |
      echo "Updating environment"

我刚刚添加了阶段并删除了您在规则中添加的 CI_DEFAULT_BRANCH 中的引号