Travis CI
を使用するリポジトリがあり、.travis.yml
に次の行があります。
script:
- vim -Nu <(cat <<-EOF
set nocompatible |
filetype off
EOF
) -c 'Script' > /dev/null
悲しいことに、これは機能しません。これは1行に変換され、次のように実行されるためです。
vim -Nu <(cat <<-EOF set no compatible | filetype off | EOF ) -c 'Script' > /dev/null
EOF
は1行である必要があるため、これによりEOF
タグが機能しなくなります。別の方法は、次のような通常の引用符を使用することです。
script:
- vim -Nu <(cat 'set nocompatible |
filetype off
) -c 'Script' > /dev/null
これは機能し、問題ありませんが、.travis.yml
に改行を挿入する方法が必要だと感じています。私は現在、代替手段を持っていますが、将来はそうでないかもしれません。それでどうやってやるの?
YAMLでは、""
を使用して改行を引用してエスケープすることでスカラーで改行を指定できます(\n
)。または、 リテラルスタイルブロックスカラー :
script:
- |
vim -Nu <(cat <<-EOF
set nocompatible |
filetype off
EOF
) -c 'Script' > /dev/null
これは、|
(パイプ記号)の行で始まり、その後に改行が保持される複数の行が続くスカラーです。
|
の後に修飾子があります:1
-9
、最初の行がスペースで始まるときに使用されます。 +
、-
は、最終的な改行の削除に影響を与えます(通常は1つにまとめられます)。私はそのような形式を使用して、目的の効果を正確に達成します
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