Github Action: Как убедиться, что сервер работает правильно? - PullRequest
0 голосов
/ 07 апреля 2020

в моем файле yaml действия GitHub у меня есть две команды в конце. Первый - 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 Ответ

0 голосов
/ 11 апреля 2020

Вам потребуется выполнить одно из следующих действий:

Вариант 1: подождать несколько секунд, прежде чем запускать тесты:

run: |
  yarn start &
  sleep 10
  yarn test

Вариант 2: дождаться открытия порта с помощью какая-то утилита, предназначенная для этой цели. Может быть wait-port (не проверено)

Вариант 3: Ожидание открытия порта с использованием встроенных linux tools - пример 1 , пример 2 .

...