Issue
I'm using Cypress.io for my automated tests & triggering it in CI/D with Github Actions. The config cypress.json
file has nested env
values like so:
{
"baseUrl": "<url-to-login>",
"env": {
"roles": {
"admin": {
"PASSWORD": "<password>",
"USERNAME": "<username>"
},
"employee": {
"PASSWORD": "<password>",
"USERNAME": "<username>"
},
"client": {
"PASSWORD": "<password>",
"USERNAME": "<username>"
}
}
}
}
Unfortunately, Cypress can't access deeply env variables so I'm creating the config cypress.json
like so:
name: Cypress Tests
on: [push]
jobs:
cypress-run:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
# creates cypress.json file to run Cypress
- name: Create Cypress config files
run: |
echo '{ "baseUrl": "${{ secrets.BASE_URL }}", "env": { "roles": { "admin": { "PASSWORD": "${{ secrets.PASSWORD }}", "USERNAME": "${{ secrets.USERNAME }}" } } } }' > cypress.json
- name: Cypress run
uses: cypress-io/github-action@v2
with:
build: yarn run
start: yarn cypress:run
wait-on-timeout: 120
browser: chrome
It doesn't work, but I hardcoded the values it did work like so:
run: |
echo '{ "baseUrl": "<hardcoded-redacted-value>", "env": { "roles": { "admin": { "PASSWORD": "<hardcoded-redacted-value>", "USERNAME": "<hardcoded-redacted-value>" } } } }' > cypress.json
So my question is, how to pass the secret in the json
file?
Solution
I solved this issue by storing the entire cypress.json
config file's content as GitHub's repository encrypted secret. Then, I used the create-json
GitHub Action to generate the cypress.json
needed to run Cypress on CI/CD. This is the final .github/workflows/main.yml
file:
name: Cypress Tests
on: [push]
jobs:
cypress-run:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: create-json
id: create-json
uses: jsdaniell/create-json@1.1.2
with:
name: "cypress.json"
json: ${{ secrets.CYPRESS_CONFIG_JSON }}
- name: Cypress run
uses: cypress-io/github-action@v2
with:
build: yarn run
start: yarn cypress:run
wait-on-timeout: 120
browser: chrome
Answered By - Manuel Abascal Answer Checked By - Dawn Plyler (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.