hgi*_*sel 30 bash continuous-integration yaml travis-ci
我有一个使用的存储库,Travis CI在.travis.yml那里我有这一行:
script:
- vim -Nu <(cat <<-EOF
set nocompatible |
filetype off
EOF
) -c 'Script' > /dev/null
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这不起作用,因为它被转换为单行并执行如下:
vim -Nu <(cat <<-EOF set no compatible | filetype off | EOF ) -c 'Script' > /dev/null
Run Code Online (Sandbox Code Playgroud)
这使得EOF标签不起作用,因为EOF需要在一行中.另一种方法是使用这样的常规引号:
script:
- vim -Nu <(cat 'set nocompatible |
filetype off
) -c 'Script' > /dev/null
Run Code Online (Sandbox Code Playgroud)
哪个有效,并且很好,但我觉得必须有一种方法可以将换行符插入到.travis.yml.我现在有另一种选择,但将来我可能不会.你是怎么做到的?
Ant*_*hon 39
在YAML中,您可以通过使用""引号和转义换行符来指定标量中的换行符\n,或者,对于您的情况,通过使用文字样式块标量更自然:
script:
- |
vim -Nu <(cat <<-EOF
set nocompatible |
filetype off
EOF
) -c 'Script' > /dev/null
Run Code Online (Sandbox Code Playgroud)
这是一个标量,以带有|(管道符号)的行开头,后跟多行,其中保留了换行符.
|可以有修饰符:1- 9,当你的第一行以空格开头时使用; +,-影响最终换行的剥离(通常折叠成一个).ser*_*hei 19
我使用这种格式来达到预期的效果
script:
- >
valgrind
--read-var-info=yes
--error-exitcode=1
--fullpath-after=
--track-origins=yes
--leak-check=full
--num-callers=20
--suppressions=$(pwd)/tests/zephir_parser.3.7.0.sup
$(phpenv which php)
-d variables_order=EGPCS
run-tests.php
-p $(which php)
-d extension=$(pwd)/modules/zephir_parser.so
-d variables_order=EGPCS
-g "FAIL,XFAIL,BORK,WARN,LEAK,SKIP"
--offline
--show-diff
--set-timeout 120
Run Code Online (Sandbox Code Playgroud)
您正在寻找的是|. 这是一个非常清楚的例子可供参考。
build:
commands:
- echo "${CODEBUILD_BUILD_ARN}"
- |
if expr "${CODEBUILD_BUILD_ARN}" : ".*build/MyProjectDev-" >/dev/null; then
yarn run build-dev;
fi
- |
if expr "${CODEBUILD_BUILD_ARN}" : ".*build/MyProject-" >/dev/null; then
yarn run build-prod;
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13809 次 |
| 最近记录: |