Gitlab CI变量,带引号的选项
我有以下Gitlab CI变量,带引号的选项,gitlab,pytest,Gitlab,Pytest,我有以下gitab-ci.yml文件: stages: - tests .test: &test_job image: name: test.com/test:latest entrypoint: [""] script: - py.test /test -v $EXTRA_OPTIONS testing: variables: EXTRA_OPTIONS: -m "not slow" <<: *te
gitab-ci.yml文件
:
stages:
- tests
.test: &test_job
image:
name: test.com/test:latest
entrypoint: [""]
script:
- py.test /test -v $EXTRA_OPTIONS
testing:
variables:
EXTRA_OPTIONS: -m "not slow"
<<: *test_job
stage: tests
阶段:
-测验
.test:&test\u作业
图片:
名称:test.com/test:latest
入口点:[“”]
脚本:
-py.test/test-v$额外选项
测试:
变量:
额外选项:-m“不慢”
首先,为了避免在变量中转义空白,请使用单引号:
variables:
EXTRA_OPTIONS: -m 'not slow'
要应用变量,有两个选项:
将addopts
与-o
结合使用addopts
是一个inifile密钥,用于。-o/--override ini
参数允许覆盖inifile值,包括addopts
。两者的结合是通过环境变量传递命令行参数的一个巧妙技巧:
script:
- pytest -v -o "addopts=$EXTRA_OPTIONS" /test
使用eval
:
script:
- eval pytest -v "$EXTRA_OPTIONS" /test
但是,在使用eval
时需要非常小心;看见因此,我倾向于第一种选择
AFAIK CI变量将始终被转义,甚至更糟: