Gitlab:如何检查字符串是否是三个值之一

Ste*_*fan 1 bash gitlab

我们希望用户从有效选项列表中输入一个值。由于我们找不到定义有效值预设的方法,因此我们目前正在尝试使用 if 语句来实现。

然而,我们很难找到 OR 运算符的 if 语法。

我们目前拥有的:

variables:
    BUMP_TYPE: 'no-release-just-build'
...
  before_script:
      - >
        if [[ "$BUMP_TYPE" = "no-release-just-build"] || ["$BUMP_TYPE" = "patch" ]]; then
          echo "valid $BUMP_TYPE"
        else
          echo "invalid $BUMP_TYPE"
        fi
Run Code Online (Sandbox Code Playgroud)

然而,这输出:“无效的 no-release-just-build”--> else 情况

为什么"$VERSION" = "no-release-just-build"不真实呢?

Sim*_*ner 5

有点不同的方法,我喜欢做的 - 而不是脚本中的 bash 脚本 - 是基于以下规则的前期工作

Param-check:
  stage: .pre
  script:
    - echo "invalid version:$VERSION - please use ..."
    - exit 1
  rules:
    - if: $VERSION == "value1"
      when: never
    - if: '$VERSION == "value1" || $VERSION == "value2"'
      when: never
    - when: always
Run Code Online (Sandbox Code Playgroud)

这样我就可以保持我的脚本和之前的块没有验证

还可以使用正则表达式作为规则,但我在手机上,因此编写正则表达式非常困难 - 我也无法验证我的脚本。但我想我展示了总体想法