我正试图在GitHub Actions中添加一些环境变量到我的柏树动作中。
我的Yaml文件如下所示。
name: Run cypress tests
on:
pull_request:
branches:
- main
workflow_dispatch:
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Cypress run
uses: cypress-io/github-action@v5
env:
CYPRESS_TEST_VARIABLE: 200
CYPRESS_ANOTHER_TEST_VARIABLE: prsnlmgr-713a4
CYPRESS_PROJECT_ID: prsnlmgr
with:
start: npm start
wait-on: "http://localhost:3000" # Waits for above
record: false
parallel: false # Runs test in parallel using settings above
Cypress文档特别指出,您应该以CYPRESS_作为环境变量的前缀,这就是我正在做的。我遇到了一个问题,出于某种原因,我的env变量是未定义的。我想知道我做错了什么。
我尝试在许多级别上设置变量,包括全局YAML文件级别(我假设在运行的每个作业中设置它们)和特定的Cypress操作内部。问题是CYPRESS_TEST_VARIABLE和CYPRESS_ANOTHER_TEST_VARIABLE被传递下来。我没有在我的柏树项目中使用它们。然而,我确实使用了变量PROJECT_ID,由于某种原因,这个变量是未定义的。在本地,我在cypress.env.json文件中设置了这些变量,如下所示
"TEST_UID": "{{value}}",
"FIREBASE_PROJECT_ID": "{{value}}",
"GCLOUD_PROJECT": "./serviceAccount.json",
"TEST_ACCOUNT_EMAIL": "{{value}}",
"TEST_ACCOUNT_PASSWORD": "{{value}}",
"FIREBASE_API_KEY": "{{value}}",
"PROJECT_ID": "{{value}}",
"FIREBASE_APP_ID": "{{value}}"
}
由于显而易见的原因,我没有将其检入GitHub repo。
所以我做了一个结论,不知怎的命名冲突和我的PROJECT_ID和任何其他变量是在cypress.env.json传递未定义。
我知道这可能听起来有点令人困惑,但我想知道是否有人遇到过这个问题。
感谢PerEnv—使用env参数指定env参数—env
属性属于with
之下,而不是其父uses
。
- name: Cypress run
uses: cypress-io/github-action@v5
with:
env:
CYPRESS_TEST_VARIABLE: 200
CYPRESS_ANOTHER_TEST_VARIABLE: prsnlmgr-713a4
CYPRESS_PROJECT_ID: prsnlmgr
start: npm start
wait-on: "http://localhost:3000" # Waits for above
record: false
parallel: false # Runs test in parallel using settings above
查看链接的文档,它还给出了CYPRESS_
前缀的另一个示例(您的看起来不错)。