如何将预定义的 json 环境变量传递给 gitlab 作业?

fin*_*gia 6 gitlab gitlab-ci cypress

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

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

在此输入图像描述

然而,Gitlab CI 抱怨“变量键只能包含字母、数字和‘_’”。

所以,我思考过的事情:

  1. 使用 覆盖 cypress 使用的 env 文件,--env然后指定一个文件,例如
# cypress-env
{
  "username": "xxxx",
  "password": "xxxx"
}
Run Code Online (Sandbox Code Playgroud)
  1. 创建此答案中指定的文件/sf/answers/3890681511/

  2. 要求 Cypress.io 团队提供一个有关如何执行此操作的示例(他们优秀的文档没有类似的示例)。

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

Mig*_*ejo 10

请按照以下步骤操作:

  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
Run Code Online (Sandbox Code Playgroud)

为了验证,输出cat

在此输入图像描述