Github CI 使用 TypeScript 和 Jest

Github CI with TypeScript and Jest

在本地,运行 tsctsc -w 并行于 npm t -- --watch 所有工作,但试图将我所拥有的复制到 Github CI 没有工作。出于某种原因,我什至无法使用 ls 打印文件夹。不过,TypeScript 和 Jest 的安装似乎都成功了。

When it runs inside Github CI,我只是从 Run tsc 正下方的 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/",
}

我在这个设置中犯了错误吗?我错过了什么? Here 是我项目的完整设置。

正如@jonrsharpe 在评论中提到的,整个问题可以用一个接近打字错误的东西来概括。我基本上忘记了将代码签出到 CI 环境中。所以,我必须将其添加到 steps:

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

Jon 指出的另一个问题是缺少 package-lock.json 文件,该文件的目的是使项目中安装的软件包与 CI VM 中安装的软件包一致 — 使用 npm ci 而不是 npm i 然后。