【问题标题】:How to pass a predefined json env variable to a gitlab job?如何将预定义的 json 环境变量传递给 gitlab 作业?
【发布时间】:2021-03-22 13:58:10
【问题描述】:

我不知道如何将 json 文件中的一些环境变量传递给 Gitlab CI,特别是我在 cypress.io 中使用的那个。

Gitlab CI 当然有一个部分,您可以在其中以变量或文件的形式指定环境变量。

但是,Gitlab CI 抱怨“变量键只能包含字母、数字和 '_'”。

所以,我想到的事情:

  1. 通过使用 --env 覆盖 cypress 使用的 env 文件,然后指定类似的文件
# cypress-env
{
  "username": "xxxx",
  "password": "xxxx"
}
  1. 按照此答案https://stackoverflow.com/a/55581164/5597960 中指定的方式创建文件

  2. 要求 Cypress.io 团队提供一个如何做到这一点的示例(他们出色的文档没有类似的示例)。

  3. 研究有关在 Gitlab CI 中指定文件变量的更多信息。 Gitlab 产生的错误有些奇怪。为什么他们不允许文件变量中的点?我一定是做错了什么。

【问题讨论】:

    标签: gitlab gitlab-ci cypress


    【解决方案1】:

    按照以下步骤操作:

    1. 使用遵循 gitlab-ci 要求的语法的键名创建环境变量。例如,将其命名为json_variables

    键:必须是一行,不能有空格,只能使用字母、数字或_。

    1. 在 Gitlab-ci 作业中,将 json_variables 的内容复制到名为 cypress.env.json 的文件中
    stages: 
      - build
    
    development: 
      stage: build
      when: manual 
      script:
        - cp $json_variables ~/cypress.env.json
        - cat ~/cypress.env.json
      environment: development
      only:
        - dev
    

    为了验证,cat 的输出是

    【讨论】:

      猜你喜欢
      • 2017-11-03
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 2021-04-17
      • 2015-03-25
      • 2020-09-24
      • 2021-05-29
      • 2013-06-05
      相关资源
      最近更新 更多