【发布时间】:2021-10-15 18:35:10
【问题描述】:
我正在构建一个持续部署管道,当主分支发生更改时触发(基于主干),执行通用测试、构建和部署阶段直至生产。
为了实现这一点,我尝试在同一工作流程中在 Github Actions 中执行多个 cypress run 命令,并在 Cypress 仪表板上记录执行情况,这是一个尝试在多个环境中测试应用程序。但是,只有第一次执行被执行和记录。
这是 YAML 的工作流程,删除了不相关的语句:
name: trunk-release
on:
push:
branches: [main]
jobs:
test-local:
name: test-local
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
steps:
- uses: actions/checkout@v2
- run: npm ci
- run: npm start & npx wait-on http://localhost:3000
- run: npm run cy-test:local
deploy-dev:
needs: test-local
name: deploy-dev
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
steps:
- uses: actions/checkout@v2
- run: npm run cy-test:dev
deploy-prod:
needs: deploy-dev
name: deploy-prod
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
steps:
- uses: actions/checkout@v2
- run: npm run cy-test:prod
这是我正在运行的脚本:
"scripts": {
"cy-test:local": "./node_modules/.bin/cypress run --record --parallel --tag 'local'",
"cy-test:dev": "CYPRESS_BASE_URL=https://dev.mywebapp.com ./node_modules/.bin/cypress run --record --parallel --tag 'develop'",
"cy-test:prod": "CYPRESS_BASE_URL=https://mywebapp.com ./node_modules/.bin/cypress run --record --parallel --tag 'production'",
}
默认的 CYPRESS_BASE_URL 是 localhost。
npm run cy-test:local 成功运行并记录,但是,其他执行不会运行测试或记录到仪表板。
第二次和第三次执行的 Github Action 日志在这里,显示没有运行测试:
(Run Starting)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 7.3.0 │
│ Browser: Electron 89 (headless) │
│ Specs: 6 found (listed tests) │
│ Params: Tag: develop, Group: false, Parallel: true │
│ Run URL: same URL as first run │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
tput: No value for $TERM and no -T specified
====================================================================================================
(Run Finished)
感谢任何帮助, 马特
【问题讨论】: