Github CI с TypeScript и Jest

Локально, работает tsc или же tsc -w параллельно с npm t -- --watchвсе работает, но попытки воспроизвести то, что у меня есть, в Github CI не работают. По какой-то причине я даже не могу распечатать папки с ls. Тем не менее установка TypeScript и Jest кажется успешной.

Когда он запускается внутри Github CI, я просто получаю журнал всех возможных команд от tsc прямо под Run tsc и Error: Process completed with exit code 1..

Это моя текущая настройка внутри Github CI:

...

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Installing TypeScript
        run: npm i -D typescript
      - name: Installing Jest
        run: npm i -D jest
      - name: Compiling TypeScript Code
        run: tsc
      - name: Running Tests
        run: npm t

А это мой package.json:

{
  ...
  "main": "dist/content.js",
  "scripts": {
    "test": "jest",
    "testwatch": "jest --watchAll"
  },
  "devDependencies": {
    "@types/jest": "^26.0.15",
    "jest": "^26.6.2",
    "ts-jest": "^26.4.3",
    "typescript": "^4.0.5"
  }
}

И единственное, что я считаю актуальным в моем tsconfig.json находятся:

{
  "outDir": "./dist/",
  "rootDir": "./lib/",
}

Я сделал ошибку в этой настройке? Что я пропустил? Вот полная настройка моего проекта.

1 ответ

Решение

Как упоминалось в комментариях @jonrsharpe, всю проблему можно резюмировать чем-то похожим на опечатку. Я практически забыл проверить код в среде CI. Итак, мне пришлось бы добавить это в начало steps:

...
steps:
  - name: Checking out the Project's Code
    uses: actions/checkout@v2
  ...

Другой проблемой, на которую указал Джон, было отсутствие package-lock.json файл, который будет служить цели согласования пакетов, установленных в проекте, с пакетами, установленными в виртуальной машине CI - используйте npm ci вместо npm i тогда.

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