Github 操作 : How to ensure that server is running properly?

标签 github concurrency github-actions

在我的 GitHub 操作 yaml 文件中,最后有两个命令。第一个是 yarn start(启动服务器),第二个是运行测试文件。

我通常从我的本地服务器运行yarn start,然后等待前端和后端端口运行,然后我只从另一个终端运行测试

但从 GitHub 操作来看,它运行 yarn start 命令,然后立即运行测试脚本,因此当测试文件运行时,服务器不会监听端口。这就是为什么我的测试脚本失败了。如何确保测试脚本在 yarn start 完成后运行?

这是我的action.yml 文件

name: "Github Actions Test"
on:
  push:
    branches:
      - wip/checkout2

jobs:
  test:
    runs-on: ubuntu-latest

    env:
      PRISMA_ENDPOINT: ${{secrets.PRISMA_ENDPOINT}}
      PRISMA_SECRET: ${{secrets.PRISMA_SECRET}}

    steps:
      - uses: actions/checkout@v1
      - name: "Install Node"
        uses: actions/setup-node@v1
        with:
          node-version: "12.x"
      - name: "Install global packages"
        run: npm install -g yarn prisma-cli concurrently mocha
      - name: "Run docker Container"
        run: docker-compose -f docker-compose.yml up --build -d
      - name: "Install deps"
        run: yarn install
      - name: "prisma deploy"
        run: yarn deploy:backend
      - name: "Seed Backend"
        run: yarn seed:backend
      - name: "Build app"
        run: yarn build
      - name: "Start backend and frontend concurrently on background and run tests"
        run: |
          yarn start &
          yarn test

最佳答案

您需要执行以下操作之一:

选项 1:在运行测试之前等待几秒钟:

run: |
  yarn start &
  sleep 10
  yarn test

选项 2:WAITING使用为此目的设计的一些实用程序打开端口。也许wait-port (未经测试)

选项 3:使用 native Linux 工具等待端口打开 - example 1 , example 2 .

关于Github 操作 : How to ensure that server is running properly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61078178/

相关文章:

javascript - JS如何既是非阻塞/异步又是单线程的?

java - 从在 Tomcat 中运行的 Web 应用程序写入 Socket 时出现 NullPointerException

javascript - 在 Nashorn 中的特定上下文中执行函数

node.js - 从 GitHub 操作中的 Node 程序运行 Powershell 脚本

workflow - Github 操作未上传工件

github - 如何创建和处理 .md 页面

javascript - 如何配置 Travis CI 以在没有测试的情况下构建 Node.js?

github - 在 Github Actions 上卡在 "starting your workflow run"上

javascript - 无法运行 Meteor 应用程序

git - html 导出不同的分支