我需要根据if条件再添加一个名称。如果来自另一个.yml文件的变量值是“是”,则在列表中添加新名称
我的yaml文件中包含以下代码:
JsNames:
- name: 'jquery.min.js'
- name: 'script.js'
我需要根据if条件添加更多名称。如果来自另一个.yml文件的变量值为“是”,则添加一个新名称,如下所示:
JsNames:
- name: 'jquery.min.js'
- name: 'script.js'
- name: 'new.js'
这可能吗?
尝试了以下内容:
JsNames:
- name: 'jquery.min.js'
- name: 'script.js'
- | # Test multiline yaml support
if [[ "site.data.settings.requiredjs" == "yes" ]]; then
name: 'new.js'
fi
我需要根据if条件添加更多名称。如果来自另一个.yml文件的变量值为“是”,则添加一个新名称,如下所示:
JsNames:
- name: 'jquery.min.js'
- name: 'script.js'
- name: 'new.js'
答案 0 :(得分:4)
作为Vaibhav响应的补充:尽管yml不固有地支持if语句,但是某些使用yml文件作为指令的应用程序可能能够解析yml中包含的if语句。 GitLab是一个著名的例子。在GitLab的CI / CD中,.gitlab-ci.yml文件可以配置为包含if语句,例如:
job:
script: "echo Hello, Rules!"
rules:
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"'
when: always
- if: '$VAR =~ /pattern/'
when: manual
- when: on_success
答案 1 :(得分:0)
您不能仅通过文本格式设置方式(而不是语言)向yml文件添加条件。 但是,您仍然可以将yml文件加载到编程语言中,并且可以将其应用于其他语言。基于字符串。
答案 2 :(得分:0)
尝试以下代码,“ item”一词可以是您想要的任何内容:
{% for item in JsNames %}
{% if name == 'jquery.min.js' %}
excute your code
{% elif name == 'script.js' %}
excute your code
{% else %}
excute your code
{% endif %}
{% else %}
some error message
{% endfor %}
答案 3 :(得分:0)
尝试一下
vartodefine: "{{ 'value1' if condition else 'value2' }}"