Github Действия Шутка

Мои тесты Jest проходят, но рабочий процесс действий Github не завершается.

Вот мой main.yaml.

name: Jest Unit Tests
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14.x, 16.x]
        mongodb-version: ['4.2', '4.4', '5.0']
    steps:
      - uses: actions/checkout@v3
      - name: Setup Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
      - name: Start MongoDB
        uses: supercharge/mongodb-github-action@1.7.0
        with:
          mongodb-version: ${{ matrix.mongodb-version }}
      - run: npm ci
      - run: npm run workflow
    env: 
      CI: true

enter image description here

Нужно ли мне исправлять мой файл yaml?

Обычно это означает, что процесс не завершается или какой-то фоновый процесс не завершается. поэтому, пока он выполняет все тесты и выводит результаты, базовый процесс узла не завершается. иногда не замечаешь в интерактивной оболочке. Трудно сказать, не глядя на сами тесты.

bryanmac 22.04.2022 21:40

посмотреть тесты можно здесь: github.com/DAT-Cash/datweave/tree/main/tests

Soubriquet 23.04.2022 01:02
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
2
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Получается, что проблемы с Github связаны с асинхронными процессами. Несмотря на то, что тесты пройдены, из Jest все еще выполнялись асинхронные операции, поэтому действия Github по умолчанию не завершаются.

Исправьте это, добавив --forceExit, чтобы принудительно завершить тест, и --detectOpenHandles, чтобы увидеть, какие асинхронные операции все еще выполняются.

Добавил их в мои package.json скрипты.

"scripts": {
    "local-test": "jest --watchAll",
    "workflow": "jest --forceExit --detectOpenHandles",
    "start": "node server.js",
    "dev": "nodemon server.js"
  },

Для тех, кто плохо знаком с действиями Github, файл yaml в моем исходном посте вызывает npm run workflow в конце, что является сценарием в моем package.json.

См. https://jestjs.io/docs/cli для получения дополнительной информации о параметрах Jest.

Да, именно эту проблему я и имел в виду. Обратите внимание: когда вы говорите, что действия Github по умолчанию не завершаются, на самом деле это node. В действиях github мы просто запускаем указанную вами командную строку и ждем ее выхода с кодом возврата.

bryanmac 24.04.2022 00:29

Другие вопросы по теме