Gitlab:如何检查字符串是否是三个值之一
Gitlab: How to check if a string is one of three values
我们希望确保用户从有效选项列表中输入一个值。由于我们找不到定义有效值预设的方法,因此我们目前正在尝试使用 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
然而这会输出:“invalid no-release-just-build”--> 其他情况
为什么 "$VERSION" = "no-release-just-build"
不正确?
有点不同的方法,我喜欢做的 - 而不是 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
这样我就可以保持我的脚本和 before 块清除验证
也可以对规则使用正则表达式,但我在手机上,因此编写正则表达式非常困难 - 我也无法验证我的脚本。但是我觉得我展示了大概的思路
我们希望确保用户从有效选项列表中输入一个值。由于我们找不到定义有效值预设的方法,因此我们目前正在尝试使用 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
然而这会输出:“invalid no-release-just-build”--> 其他情况
为什么 "$VERSION" = "no-release-just-build"
不正确?
有点不同的方法,我喜欢做的 - 而不是 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
这样我就可以保持我的脚本和 before 块清除验证
也可以对规则使用正则表达式,但我在手机上,因此编写正则表达式非常困难 - 我也无法验证我的脚本。但是我觉得我展示了大概的思路