首页 > 解决方案 > 应该如何使用变量?

问题描述

如果我添加变量(构建阶段),这些阶段将不起作用。我到底哪里错了。如果仅删除部分下的变量variables,它将运行。

build:
  stage: build
  script:
    - echo "Build is running"
  only:
    changes:
      - Dockerfile
      - requirements.txt
      - ./configs/*
    variables:
      - $BUILD == "True"

development:
  stage: development
  script:
    - echo "development"
  except:
    variables:
      - $BUILD == "False"

development_build:
  stage: development_build
  script:
    - echo "BUILD OK"
  rules:
    - if: $BUILD == "True"
      when: always

标签: gitlabgitlab-ci

解决方案


文档提到

only:variables/except:variables

根据 CI/CD 变量的状态,使用only:variablesorexcept:variables关键字控制何时将作业添加到管道。

关键字类型:工作关键字。您只能将其用作工作的一部分。

可能的输入:一组CI/CD 变量表达式

第一:尝试使用rules:if,看看问题是否仍然存在。

job1:
  variables:
    VAR1: "variable1"
  script:
    - echo "Test variable comparison"
  rules:
    - if: $VAR1 == "variable1"

其次,尝试使用不同的变量名,以防BUILD以某种方式保留。

还要检查您在哪里定义了 BUILD(是否有workflow:rules:variables部分?)


推荐阅读