前端服务器无法连接到 Github Actions 中的后端

问题描述 投票:0回答:1

我已经尝试使用 Github Actions 在持续集成中运行 Cypress 几天了,但遇到了一个我似乎无法找到解决方案的问题。我可以首先讲述我在 yml 文件中做了什么。

  1. 首先我在 14.17.1 上运行节点,因为我们的后端服务器需要 要运行的版本。
  2. 然后我获取yarn缓存目录路径并尝试缓存几个 安装文件夹以节省每次运行此作业的时间
  3. 之后,如果没有找到缓存,我会安装所有软件包
  4. 然后我启动 mongodb 服务器并对我的测试数据库进行 mongorestore
  5. 最后,我运行 Cypress 并根据 Github Actions Cypress 文档使用一些设置:https://github.com/cypress-io/github-action。因此,我使用自己的配置文件,启动后端和前端服务器,并告诉 Cypres 等待,直到它收到前端服务器的响应。前端服务器是用 Vue 2.6.11 制作的,后端服务器是用 Node.js 和 Express 构建的。

这是我的 Github Actions yml 文件的样子:

name: GitHub Actions Test on: [push] jobs:  cypress-run:
runs-on: ubuntu-18.04
strategy:
  matrix:
    node: [14.17.1]
steps:
  - uses: actions/checkout@v2

  - uses: actions/setup-node@v2 
    with:
      node-version: '14.17.1'

  - name: Get yarn cache directory path
    id: yarn-cache-dir-path
    run: echo "::set-output name=dir::$(yarn cache dir)"

  - uses: actions/[email protected]
    id: yarn-cache
    with:
      path: |
        **/node_modules
        **/.eslintcache
        ${{ steps.yarn-cache-dir-path.outputs.dir }}
        /home/runner/.cache/Cypress
      key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
      restore-keys: |
        ${{ runner.os }}-yarn-

  - name: Install packages
    if: steps.yarn-cache.outputs.cache-hit != 'true'
    run: yarn --prefer-offline --frozen-lockfile

  - name: Create mongoDB Docker container      
    run: |
        sudo docker run -d -p 27017:27017 mongo:4.4.7 
        mongorestore --drop backup/test

  - name: Cypress run
    uses: cypress-io/github-action@v2
    with: 
      install: false
      record: true
      browser: chrome
      start: yarn backend:test, yarn frontend:test
      config-file: cypress/cypress-mobile.json
      wait-on: 'http://localhost:3030'
    env:
      AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
      AWS_BUCKET: ${{ secrets.AWS_BUCKET }}
      AWS_S3_REGION: ${{ secrets.AWS_S3_REGION }}
      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
      NODE_ENV: test
      AWS_SES_EMAILADRESS: ${{ secrets.AWS_SES_EMAILADRESS }}
      PV_PASSWORD: ${{ secrets.PV_PASSWORD }}
      CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      CYPRESS_CACHE_FOLDER: /home/runner/.cache/Cypress
      ACTIONS_RUNNER_DEBUG: true
      ACTIONS_STEP_DEBUG: true
      DEBUG: 'cypress:launcher'

所以我的问题是,当在 Github 操作中运行后端和前端服务器时,前端服务器无法与后端服务器通信,它找不到它。我尝试过一些方法,例如在旧版本的 Ubuntu 中运行服务器、等待后端服务器响应以及在不同的 docker 容器中运行服务器。

我可以在 Github Actions 日志中看到前端和后端服务器都以正确的端口启动并连接到数据库。

我对这个问题的怀疑:

  • 这可能是关于 vue.dev.config.js 的吗?
  • 我不应该使用 vue-cli 启动前端服务器吗?
  • 我应该使用 NGINX 之类的东西将 API 调用重定向到 后端?
node.js vue.js cypress github-actions vue-cli
1个回答
0
投票

你发现了什么?同样的问题在这里。

© www.soinside.com 2019 - 2024. All rights reserved.