我想使用Github Actions for CI并在分支合并之前运行测试。
我有一个单一的存储库,其中有我的服务器和前端(嵌套和Angular )。
我正在使用Cypress/Jest进行测试。
我需要我的后端服务器运行我的前端cypress测试通过。
目前GH的行动没有进入下一步,因为后端进程正在运行-但这是我需要发生的...
我应该如何进行设置,以便可以使用GH Actions for CI?
name: test
on: [push]
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OTHER_SECRETS: ${{ secrets.otherSecrets }}
jobs:
cypress-run:
runs-on: macos-11
steps:
# start cypress w/github action: https://github.com/cypress-io/github-action
- name: Setup Node.js environment
uses: actions/setup-node@v2.5.0
with:
node-version: '16.13.0'
- name: Checkout
uses: 'actions/checkout@v2'
- name: "Start Backend"
run: |
cd server &&
npm install &&
npm run build &&
npm run start:prod
- name: "Start Frontend"
run: |
npm install &&
npm run build &&
npm run start
- name: Cypress run
uses: cypress-io/github-action@v2
with:
record: true
browser: chrome
- name: "Run Jest Tests"
run: |
cd server &&
npm run test
2条答案
按热度按时间hzbexzde1#
注意:我试过在npm命令后面附加“&& sleep 10 && curl http://localhost:port-i”选项,但没有效果。
这里有一个小错误,
&&
将等待前一个命令完成,并且只有在成功后才运行下一个命令&
将在后台运行前一个命令,然后继续运行下一个命令。因此,由于没有任何东西会停止您的服务器,&&
将无法工作。我不确定这是否是最干净的方式,但下面的方法应该可以工作,我已经在我的一个项目中使用了一个等效的方法来运行UI。
bkhjykvo2#
我遇到了同样的问题,服务器运行,但从来没有移动到下一步运行Cypress测试.感谢didwefixit,只使用一个&工作启动服务器,然后运行Cypress测试脚本工作:
客户端包.json中脚本:
服务器包.json中脚本:
根package.json中脚本: