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变量将始终被转义,甚至更糟: