如何将gitlab-ci变量传递给空手道jarty?

时间:2019-07-29 21:41:58

标签: gitlab-ci karate

我正在尝试在gitlab-ci管道中使用Karate Netty jar。我正在提取一个包含jar的图像,作为管道中的步骤。我能够对不安全的服务执行测试。 像这样:

karate-test:
    stage: acceptance-test
    image:
        name: registry.gitlab.opr.business.org/karate-universe:0.0.3
        entrypoint: [ "" ]
    script:
        - java -jar /karate.jar -e dev src/test/karate/acceptance-test.feature -o /target/karate
    environment:
        name: Test
    artifacts:
        paths:
            - /target/karate

现在,我正在尝试将凭据传递到用于安全服务的空手道功能中,但无法从jar界面中找到功能。

我试图像这样传递凭据:

    - java -jar /karate.jar -e dev src/test/karate/acceptance-test.feature -o /target/karate -Duser.password ${REQUEST_PASSWORD} -Duser.id ${REQUEST_USER}

REQUEST_PASSWORD和REQUEST_USER是gitlab-ci中可用的gitlab变量。

运行管道时,我得到:

Unmatched arguments [-Duser.password, -Duser.id]

空手道Netty是否具有像常规空手道一样能够传递用于空手道配置的变量的功能?我无法在karate-config文件本身中保留秘密。

1 个答案:

答案 0 :(得分:1)

确保-Dfoo=bar部分在-jar选项之前 ,因为此后的所有内容都传递给Karate,而不是JVM。

java -Dfoo=bar -Dbaz=ban -jar /karate.jar

请注意,您还可以获得environment variables easily

java.lang.System.getenv('PATH')

通常人们将值作为-D JVM选项传递。如果您对独立JAR有一些高级需求,请参见:https://stackoverflow.com/a/56458094/143475

相关问题