#6178·act

在 act/catthehacker 下,tsc build 以 1 退出,没有输出,但在 node:24-bookworm 和 GitHub 主机上的运行程序中通过

作者: vikas-gits-good创建于 2026年9月2日更新于 2026年9月2日

Bug report info

  • act version: 0.2.89
  • Docker: 29.7.2
  • Host OS: Linux (Manjaro), kernel 6.18, x86_64
  • Runner image: catthehacker/ubuntu:act-latest (exact: act-24.04-amd64, image version 20260815, built 2026-08-15, Ubuntu 24.04.4 LTS, revision e2f8efe, digest sha256:c58e2b364da03b0c804c7d660f2ecbedf2f221a382b9baa0b344b0144780ff43)
  • Node in the job: v24.20.0 (installed via actions/setup-node@v4, node-version: 24)

Command used with act

act workflow_dispatch -W .GitHub/workflows/repro.yml -j build \
  --network bridge --rm \
  --container-options "-v /path/to/project:/src:ro --memory=12g"

Describe issue

A job builds a large TypeScript project (a NestJS backend, ~1,400 npm dependencies) with npm ci && npm run build, where the build script is tsc -p tsconfig.build.json.

  • npm ci succeeds (installs ~1,439 packages).
  • tsc then exits with code 1 roughly 2–3 seconds after it starts, printing no diagnostics at all — no error TS… lines, nothing on stdout or stderr. The step just goes from > tsc -p tsconfig.build.json straight to failure. The identical steps (same package-lock.json via npm ci, same npm run build) succeed with exit code 0 in both of these environments:
  1. A plain Docker run --rm node:24-bookworm container (copy the source in, npm ci, npm run buildBUILD_EXIT=0).
  2. GitHub-hosted ubuntu-latest runners (the same workflow run on GitHub). It only fails when run under act with catthehacker/ubuntu:act-latest (act-24.04-amd64, version 20260815). Things I ruled out:
  • Memory — reproduces with --container-options "--memory=12g" and NODE_OPTIONS=--max-old-space-size=6144; no OOM message appears.
  • Node version — act's job uses v24.20.0 (same major as the passing node:24-bookworm test).
  • Lockfile driftnpm ci is used (lockfile is in sync; a full clean install succeeds). A ~2.5 s silent non-zero exit from tsc on a project that normally takes ~20–30 s to type-check strongly suggests the process is being terminated early inside the container, but there is no diagnostic, no OOM/kill message, and it's specific to the act/catthehacker environment. It may be an image-environment issue (catthehacker/docker_images) rather than act core — happy to move it there if that's the right home.

Link to GitHub repository

Not available — this reproduces inside a private repository, so I can't share it. The failing project is a large NestJS/TypeScript backend; I have not yet reduced it to a minimal public repro (the behavior appears tied to project size / a large tsc build). I'm glad to run further diagnostics on request.

Workflow content

name: repro
on: workflow_dispatch
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 24
      - run: npm ci
      - run: npm run build   # -> "tsc -p
…