【问题标题】:GitLab CI only running one job and not other jobGitLab CI 只运行一项工作而不是其他工作
【发布时间】:2022-01-23 09:25:04
【问题描述】:

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

通过 printenv 调试 gitlab 环境变量我可以看到定义的两个规则都应该评估为 true。但这项工作永远不会运行。工作需要在一个阶段中定义还是我错过了什么?

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"

【问题讨论】:

    标签: gitlab gitlab-ci


    【解决方案1】:

    你可以试试这个

    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 中删除了您在规则中添加的引号

    【讨论】:

    • 通过直接推送到 main 然后针对 Main 创建一个 MR 对此进行了测试。像魅力一样工作。该死的引号...
    • 是的,我也有过类似的经历 :)
    猜你喜欢
    • 2019-02-02
    • 2022-06-15
    • 2022-01-22
    • 2022-07-27
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    相关资源
    最近更新 更多